WA20分求助
查看原帖
WA20分求助
638141
Literally楼主2023/7/30 22:52

RT

#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];
//m元组,n以内整数 
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;
            */
            if(a[i]==1){
                ssum*=s[i];
                ksum+=k[i];
            }
        }
        ans=min(ans,abs(ssum-ksum));
        return;
    }
    for(int i=1;i<=n;i++) {
        a[pos]=i;
        dfs(pos+1,n);
    }
}
signed main() {
	ios::sync_with_stdio(0);
    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/7/30 22:52
加载中...