60pts,WA#4
code:
#include <iostream>
#include <cmath>
using namespace std;
int n, ans = 2100000000;
struct food {
int s, b;
} a[15];
bool b[15];
void dfs(int pos) {
if (pos == n + 1) {
int x;
for (int i = 1; i <= n; i++)
x += b[i];
if (!x)
return;
long long sum1 = 1, sum2 = 0;
for (int i = 1; i <= n; i++) {
if (b[i])
sum1 *= a[i].s, sum2 += a[i].b;
}
if (abs(sum1 - sum2) < ans)
ans = abs(sum1 - sum2);
return;
}
for (int i = 0; i <= 1; i++) {
b[pos] = i;
dfs(pos + 1);
b[pos] = !i;
}
}
int main() {
cin >> n;
for (int i = 1; i <= n; i++)
cin >> a[i].s >> a[i].b;
dfs(1);
cout << ans;
return 0;
}
然后我就下载了数据,发现输出和本地的输出是一样的。怎么回事?