初学搜索,20分,求助
查看原帖
初学搜索,20分,求助
1038838
张一2010楼主2023/12/13 17:08
#include<iostream>
using namespace std;
int s[5],a[65],ans,sum,anstime,nowtime;
void dfs(int k,int i){
	if(k>s[i]){
		anstime=(anstime>=nowtime?anstime:nowtime);
		return;
	}
	if(nowtime+a[k]<=sum/2){
		nowtime+=a[k];
		dfs(k+1,i);
		nowtime-=a[k];
	}
	dfs(k+1,i);
}
int main(){
	for(int i=0;i<4;i++) cin>>s[i];
	for(int i=0;i<4;i++){
		sum=0,anstime=0,nowtime=0;
		for(int j=0;j<s[i];j++){
			cin>>a[j];
			sum+=a[j];
		}
		dfs(1,i);
		ans+=(sum-anstime);
	}
	cout<<ans;
}
2023/12/13 17:08
加载中...