1 solutions

  • 0
    @ 2024-12-11 0:16:56

    C++ :

    #include<iostream>
    #define MAXN 9999999
    using namespace std;
    const int N = 21;
    int a[N],n,k,t[N],book[N],ans=MAXN;
    void dfs(int step)
    {
    	if(step==n+1){
    		int tot=0;
    		for(int i=1;i<=k;i++){
    				tot=max(tot,a[i]);
    		}
    		if(tot<ans) ans=tot;
    		return ;
    	}
    	for(int i=1;i<=k;i++)
    		for(int j=1;j<=n;j++){
    			if(book[j]==0){
    				book[j]=1;
    				a[i]+=t[j];
    				dfs(step+1);
    				book[j]=0;
    				a[i]-=t[j];
    			}
    		}
    	return ;
    }
    int main()
    {
    	cin>>n>>k;
    	for(int i=1;i<=n;i++)
    		cin>>t[i];
    	dfs(1);
    	cout<<ans<<endl;
    	return 0;
    }
    
    • 1

    Information

    ID
    687
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By