#include <bits/stdc++.h>
using namespace std;
int n, a[41], mid;
long long diff, cnt, dp[1 << 20];
vector <long long> v1, v2;
unordered_map <long long, int> mp;
int main() {
ios::sync_with_stdio(false), cin.tie(nullptr);
cin >> n;
for (int i = 1; i <= n; ++i) cin >> a[i];
if (n == 1) {
cout << a[1] << " 1\n";
return 0;
}
mid = n >> 1;
long long total = 0;
for (int i = 1; i <= mid; ++i)
total += a[i];
v1.push_back(-total);
++mp[-total];
for (int mask = 1; mask < (1 << mid); ++mask) {
dp[mask] = dp[mask & (mask - 1)] + a[__builtin_ctz(mask) + 1];
if (!mp.count(dp[mask] * 2 - total)) v1.push_back(dp[mask] * 2 - total);
++mp[dp[mask] * 2 - total];
}
total = 0;
for (int i = mid + 1; i <= n; ++i)
total += a[i];
v2.push_back(-total);
for (int mask = 1; mask < (1 << (n - mid)); ++mask) {
dp[mask] = dp[mask & (mask - 1)] + a[__builtin_ctz(mask) + mid + 1];
v2.push_back(dp[mask] * 2 - total);
}
diff = 1e18; cnt = 0;
sort(v1.begin(), v1.end());
sort(v2.rbegin(), v2.rend());
int i = 0;
for (int j = 0; j < v2.size(); ++j) {
while (i < v1.size() - 1 && v1[i] <= -v2[j]) ++i;
long long ndiff = abs(v1[i] + v2[j]);
if (diff > ndiff) { diff = ndiff, cnt = mp[v1[i]]; }
else if (diff == ndiff) cnt += mp[v1[i]];
if (i) {
ndiff = abs(v1[i - 1] + v2[j]);
if (diff > ndiff) { diff = ndiff, cnt = mp[v1[i - 1]]; }
else if (diff == ndiff) cnt += mp[v1[i - 1]];
}
}
cnt >>= 1;
cout << diff << " " << cnt << "\n";
return (0 ^ 0);
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbiwgYVs0MV0sIG1pZDsKbG9uZyBsb25nIGRpZmYsIGNudCwgZHBbMSA8PCAyMF07CnZlY3RvciA8bG9uZyBsb25nPiB2MSwgdjI7CnVub3JkZXJlZF9tYXAgPGxvbmcgbG9uZywgaW50PiBtcDsKaW50IG1haW4oKSB7CiAgICBpb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSksIGNpbi50aWUobnVsbHB0cik7CiAgICBjaW4gPj4gbjsKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47ICsraSkgY2luID4+IGFbaV07CiAgICBpZiAobiA9PSAxKSB7CiAgICAgICAgY291dCA8PCBhWzFdIDw8ICIgMVxuIjsKICAgICAgICByZXR1cm4gMDsKICAgIH0KCiAgICBtaWQgPSBuID4+IDE7CiAgICBsb25nIGxvbmcgdG90YWwgPSAwOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbWlkOyArK2kpIAogICAgICAgIHRvdGFsICs9IGFbaV07CiAgICAKICAgIHYxLnB1c2hfYmFjaygtdG90YWwpOwogICAgKyttcFstdG90YWxdOwogICAgZm9yIChpbnQgbWFzayA9IDE7IG1hc2sgPCAoMSA8PCBtaWQpOyArK21hc2spIHsKICAgICAgICBkcFttYXNrXSA9IGRwW21hc2sgJiAobWFzayAtIDEpXSArIGFbX19idWlsdGluX2N0eihtYXNrKSArIDFdOwogICAgICAgIGlmICghbXAuY291bnQoZHBbbWFza10gKiAyIC0gdG90YWwpKSB2MS5wdXNoX2JhY2soZHBbbWFza10gKiAyIC0gdG90YWwpOwogICAgICAgICsrbXBbZHBbbWFza10gKiAyIC0gdG90YWxdOwogICAgfQoKICAgIHRvdGFsID0gMDsKICAgIGZvciAoaW50IGkgPSBtaWQgKyAxOyBpIDw9IG47ICsraSkKICAgICAgICB0b3RhbCArPSBhW2ldOwoKICAgIHYyLnB1c2hfYmFjaygtdG90YWwpOwogICAgZm9yIChpbnQgbWFzayA9IDE7IG1hc2sgPCAoMSA8PCAobiAtIG1pZCkpOyArK21hc2spIHsKICAgICAgICBkcFttYXNrXSA9IGRwW21hc2sgJiAobWFzayAtIDEpXSArIGFbX19idWlsdGluX2N0eihtYXNrKSArIG1pZCArIDFdOwogICAgICAgIHYyLnB1c2hfYmFjayhkcFttYXNrXSAqIDIgLSB0b3RhbCk7CiAgICB9CiAKICAgIGRpZmYgPSAxZTE4OyBjbnQgPSAwOwogICAgc29ydCh2MS5iZWdpbigpLCB2MS5lbmQoKSk7CiAgICBzb3J0KHYyLnJiZWdpbigpLCB2Mi5yZW5kKCkpOwogICAgaW50IGkgPSAwOwogICAgZm9yIChpbnQgaiA9IDA7IGogPCB2Mi5zaXplKCk7ICsraikgewogICAgICAgIHdoaWxlIChpIDwgdjEuc2l6ZSgpIC0gMSAmJiB2MVtpXSA8PSAtdjJbal0pICsraTsKCiAgICAgICAgbG9uZyBsb25nIG5kaWZmID0gYWJzKHYxW2ldICsgdjJbal0pOwogICAgICAgIGlmIChkaWZmID4gbmRpZmYpIHsgZGlmZiA9IG5kaWZmLCBjbnQgPSBtcFt2MVtpXV07IH0KICAgICAgICBlbHNlIGlmIChkaWZmID09IG5kaWZmKSBjbnQgKz0gbXBbdjFbaV1dOwogCiAgICAgICAgaWYgKGkpIHsKICAgICAgICAgICAgbmRpZmYgPSBhYnModjFbaSAtIDFdICsgdjJbal0pOwogICAgICAgICAgICBpZiAoZGlmZiA+IG5kaWZmKSB7IGRpZmYgPSBuZGlmZiwgY250ID0gbXBbdjFbaSAtIDFdXTsgfQogICAgICAgICAgICBlbHNlIGlmIChkaWZmID09IG5kaWZmKSBjbnQgKz0gbXBbdjFbaSAtIDFdXTsKICAgICAgICB9CiAgICB9CiAgICBjbnQgPj49IDE7CiAgICBjb3V0IDw8IGRpZmYgPDwgIiAiIDw8IGNudCA8PCAiXG4iOwogICAgcmV0dXJuICgwIF4gMCk7Cn0=