36分,求助!!!
查看原帖
36分,求助!!!
547658
Shiota_Nagisa楼主2021/9/13 19:51
#include<bits/stdc++.h>
using namespace std;
long long sou[100],bi[100];
bool use[100];
long long sour=1,bits=0;
int n;
long long ans=(long long)1e18; 
void dfs(int food){
	if(food>n){
	   return ;
	}
    for(int i=1;i<=n;i++)
    	if(!use[i]){
		    sour*=sou[i];
		    bits+=bi[i];
		    long long want=abs(sour-bits);
		    ans=min(ans,want);
	        use[i]=true;
	        dfs(food+1);
	        sour/=sou[i];
	        bits-=bi[i];
		}
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++)
	    cin>>sou[i]>>bi[i];
	dfs(1);
	cout<<ans<<endl;
	return 0;
}
2021/9/13 19:51
加载中...