50求助!(急)
查看原帖
50求助!(急)
1234821
Dengxiangyuan1206楼主2025/1/3 21:06
#include <bits/stdc++.h>
using namespace std;
int n,a[11],b[11],ans=INT_MAX,sour=1,ku,vis[11];
void dfs(int i){
	if(i==n+1){
		return;
	}
	for(int j=1;j<=n;j++){
		if(vis[j]||abs(sour*a[j]-(ku+b[j]))>abs(sour-ku)&&sour!=1&&ku!=0)continue;
		sour*=a[j],ku+=b[j];
		vis[j]=1;
		ans=min(abs(sour-ku),ans);
		dfs(j);
		vis[j]=0;
		sour/=a[j];
		ku-=b[j];
	}
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i]>>b[i];
	}
	dfs(1);
	cout<<ans<<endl;
	return 0;
}
2025/1/3 21:06
加载中...