【悬关】50pts,TLE #5 #7 求助
查看原帖
【悬关】50pts,TLE #5 #7 求助
638141
Literally楼主2023/9/30 11:37
#include <bits/stdc++.h>
using namespace std;
#define int long long
int n,m,ssum=1,ksum=0,ans=0x7fffffff;
int a[15],k[20],s[20];
void dfs(int pos,int m) {
    if(pos==m+1){
    	ssum=1;
		ksum=0;
        for(int i=1;i<=m;i++){
        	/*
        	for(int j=1;j<=n;j++)
            	cout<<a[j]<<" ";
            cout<<endl;
            */
            ssum*=s[a[i]];
            ksum+=k[a[i]];
        }
        ans=min(ans,abs(ssum-ksum));
        return;
    }
    for(int i=1;i<=n;i++) {
        a[pos]=i;
        dfs(pos+1,n);
    }
}
signed main() {
    cin>>n;
	for(int i=1;i<=n;i++){
		cin>>s[i]>>k[i];
	}
	for(int i=1;i<=n;i++){
		dfs(1,i);
	}
	cout<<ans;
    return 0;
}
2023/9/30 11:37
加载中...