#include #include #include using namespace std; bool next_binary(vector &bin) { int n = bin.size() - 1; while (n >= 0 && bin[n]) { bin[n] = 0; n--; } if (n == -1) { return false; } bin[n] = 1; return true; } double fair_division(const vector &a) { const int n = a.size(); double min_diff = numeric_limits::max(); vector d(n); do { double sum_A = 0, sum_B = 0; for (int i = 0; i < n; i++) { if (d[i]) { sum_B += a[i]; } else { sum_A += a[i]; } } min_diff = min(min_diff, abs(sum_B - sum_A)); } while (next_binary(d)); return min_diff; } 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; }