#include #include using namespace std; double fair_division(const vector &a, double sum, double sum_A, double sum_B, int i) { if (i == a.size()) { return abs(sum_A - sum_B); } if (sum_A > sum_B + sum) { return sum_A - (sum_B + sum); } if (sum_B > sum_A + sum) { return sum_B - (sum_A + sum); } double res_A = fair_division(a, sum - a[i], sum_A + a[i], sum_B, i + 1); double res_B = fair_division(a, sum - a[i], sum_A, sum_B + a[i], i + 1); return min(res_A, res_B); } double fair_division(const vector &a) { double sum = 0; for (int i = 0; i < a.size(); i++) { sum += a[i]; } return fair_division(a, sum, 0, 0, 0); } int main(void) { int n; cin >> n; vector a(n); for (int i = 0; i < n; i++) { cin >> a[i]; } cout << fair_division(a) << endl; return 0; }