30pts 求助
查看原帖
30pts 求助
868063
_Coffice_楼主2023/2/26 13:37

代码:

#include<bits/stdc++.h>
using namespace std;
int n,s[100],b[100];
int zx = 1e9;
bool xz = 0;
void dfs(int k,int sd,int kd){
	if(k > n){
		if(xz) zx = min(zx,abs(sd-kd));
		return;
	}else if(abs(sd-kd) > zx) return;
	else{
		for(int i = 1;i<=2;i++){
			if(i == 1){
				xz = 1;
				dfs(k+1,sd*s[k],kd+b[k]);
				xz = 0;
			}else{
				dfs(k+1,sd,kd);
			}
		}
	}
}
int main(){
	ios::sync_with_stdio(false); cin.tie(0), cout.tie(0);
	cin >> n;
	for(int i = 1;i<=n;i++){
		cin >> s[i] >> b[i];
	}
	dfs(1,1,0);
	cout << zx;
	return 0;
}
2023/2/26 13:37
加载中...