cses

My solution for the coding challenges of cses.fi
git clone https://git.tronto.net/cses
Download | Log | Files | Refs | README

apple_division_1623.cpp (486B)


      1 #include <iostream>
      2 #include <numeric>
      3 #include <vector>
      4 
      5 long long md(std::vector<long long>& a, long long p, long long t, size_t i) {
      6 	if (2*p >= t)
      7 		return 2*p - t;
      8 	if (i == a.size())
      9 		return t;
     10 	return std::min(md(a, p, t, i+1), md(a, p+a[i], t, i+1));
     11 }
     12 
     13 int main() {
     14 	size_t n;
     15 	std::cin >> n;
     16 	std::vector<long long> a(n);
     17 	for (size_t i = 0; i < n; i++)
     18 		std::cin >> a[i];
     19 	auto s = md(a, 0, std::accumulate(a.begin(), a.end(), (long long)0), 0);
     20 	std::cout << s << "\n";
     21 }