问题标题: 酷丁编程:求助

0
0
蔡乐毅
蔡乐毅
高级光能
高级光能

题目链接: 酷丁编程:7089

#include<bits/stdc++.h>

using namespace std;

bool vis[25];

int a[25],f[25],minn=100000000;

int n,c;

void dfs(int t,int sum){

    if(minn==0) return ;

    if(sum>c) return ;

    if(sum+f[n]-f[t-1]<c) return ;

    if(t==n+1){

        if(sum>=c){

            if(minn>=sum-c){

                minn=sum-c;

            }

        }else{

            if(minn>=c-sum){

                minn=c-sum;

            }

        }

        return ;

    }

    vis[t]=true;

    dfs(t+1,sum+a[t]);

    vis[t]=false;

    dfs(t+1,sum);

    return ;

}

int main(){

    cin>>n>>c;

    for(int i=1;i<=n;i++){

        cin>>a[i];

        f[i]=f[i-1]+a[i];

    }

    dfs(1,0);

    cout<<minn;

    return 0;

}


0
0
0
我要回答