10分求条
查看原帖
10分求条
1495466
LINYUHENG2楼主2025/7/20 16:07
#include<bits/stdc++.h>
using namespace std;
int n,s[15],b[15],a[15];
int ans1=1,ans2=0,ans,minn=114514191;
bool vis[15];
void dfs(int k,int nn){
	if(k>nn){
		for(int i=1;i<=nn;i++){
			ans1*=s[a[i]];
			ans2+=b[a[i]];
		}
		ans=abs(ans1-ans2);
		return;
	}
	for(int i=1;i<=n;i++){
		if(!vis[i]){
			a[k]=i;
			vis[i]=1;
			dfs(k+1,nn);
			vis[i]=0;
		}
	}
}

int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%d%d",&s[i],&b[i]);
	}
	for(int i=1;i<=n;i++){
		dfs(1,i);
		minn=min(minn,ans);
	}
	printf("%d",minn); 
	return 0;
}
2025/7/20 16:07
加载中...