70分求
查看原帖
70分求
1397517
guanzisheng2楼主2024/7/22 10:52
#include<bits/stdc++.h>
using namespace std;
int n,s[20],b[20],ans,cnt;
int ks,kb;
int myabs(int x){
	if(x>0){
		return x;
	}
	else{
		return -x;
	}
}
void dfs(int x){
	if(x==n+1){
		if(cnt>=1&&myabs(ks-kb)<ans){
			ans=myabs(ks-kb);
		}
		return ;
	}
	ks*=s[x];
	kb+=b[x];
	cnt++;
	dfs(x+1);
	cnt--;
	ks/=s[x];
	kb-=b[x];
	dfs(x+1);
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>s[i]>>b[i];
	}
	ks=1;
	kb=0;
	ans=1000000007;
	dfs(1);
	cout<<ans;
}
2024/7/22 10:52
加载中...