30分求助
查看原帖
30分求助
1388554
Roltro楼主2024/8/1 21:35
#include<bits/stdc++.h>
using namespace std;
int n;
int a[11];
long long s[11],b[11],sour=1,bitter=0,ans=1e16;
void dfs(int dep)
{
	if(dep>n) 
	{
		
		 return;
	}
   	else{for(int i=1;i<=n;i++)
	{
		if(a[i]==0)	
		{
			sour*=s[dep];
	        bitter+=b[dep];
			ans=min(ans,abs(sour-bitter));	
			a[i]=1;		
			dfs(dep+1);
			a[i]=0;		
		    sour/=s[dep];
	        bitter-=b[dep];
			}
		}
   	}

}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++) cin>>s[i]>>b[i];
	dfs(1);
	cout<<ans;
}
2024/8/1 21:35
加载中...