#5 WA 求助
查看原帖
#5 WA 求助
1229671
Greenqwq楼主2024/5/26 11:28
//暴搜答案

#include<iostream>
#include<algorithm>

using namespace std;

const int N = 110;

int n,v;
int me[N],gf[N];
int ans=0x3f3f3f3f;
bool st[N];
int e;

void dfs(int u,int a,int b){
    
    e++;
    if(e>1e8)return;
    
    if(a+b>=v){
        ans=min(ans,abs(a-b));
    }
    if(!ans){return;}
    
    for(int i=u;i<=n;i++){
        if(!st[i]){
            st[i]=true;
            dfs(u+1,a+me[i],b+gf[i]);
            st[i]=false;
        }
    }
}

int main(){
    scanf("%d%d",&n,&v);
    
    for(int i=1;i<=n;i++){
        scanf("%d%d",&me[i],&gf[i]);
    }
    
    dfs(0,0,0);
    
    printf("%d",(ans==0x3f3f3f3f?-1:ans));
    
    return 0;
}
2024/5/26 11:28
加载中...