一个问题
查看原帖
一个问题
824800
donnieguo楼主2023/9/14 16:00

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;
}

然后我就下载了数据,发现输出和本地的输出是一样的。怎么回事?

2023/9/14 16:00
加载中...