#5#7测试点TLE了,哪位佬帮忙看看
查看原帖
#5#7测试点TLE了,哪位佬帮忙看看
916946
Vera_suki楼主2023/8/30 16:46
#include <bits/stdc++.h>
#define int long long

using namespace std;

const int N=15;

int n,num,Min=0x3f3f3f3f;
bool st[N];
int path[N],b[N],s[N];

void dfs(int u){
    if(u==num) {
        int mul=1,sum=0;
        for(int i=0;i<num;i++){
            mul*=s[path[i]];
            sum+=b[path[i]];
        }
        Min=min(Min,abs(mul-sum));
    }

    for(int i=0;i<n;i++){
        if(!st[i]){
            path[u]=i;
            st[i]=true;
            dfs(u+1);
            st[i]=false;
        }
    }
}

signed main(){
    cin>>n;

    for(int i=0;i<n;i++) cin>>s[i]>>b[i];

    for(num=1;num<=n;num++){
        dfs(0);
    }

    cout<<Min;
    return 0;
}
2023/8/30 16:46
加载中...