救命,40分,TLE,求调
查看原帖
救命,40分,TLE,求调
778070
tall_buildin楼主2024/7/20 16:10
#include <bits/stdc++.h>
using namespace std;
int s[5],a[4][22];
int sum[5] = {0x3f3f,0x3f3f,0x3f3f,0x3f3f,0x3f3f};
bool cmp(int a,int b){
	return a>b;
}
void dfs(int l,int r,int step,int k){
	if (step == s[k]+1){
		int tmp = max(l,r);
		if (tmp<sum[k]) sum[k] = tmp;
		return;
	}
	dfs(l,r+a[k][step],step+1,k);
	dfs(l+a[k][step],r,step+1,k);
	
}
int main(){
	memset(s,0,sizeof(s));
	int tmp;
	for (int i = 1;i<=4;i++){
		cin>>s[i];
	}
	int ans = 0;
	for (int j = 1;j<=4;j++){
		for (int i = 1;i<=s[j];i++){
			cin>>a[j][i];
		}
		dfs(0,0,1,j);
		ans+=sum[j];
	}
	cout<<ans;
	return 0;
} 
  
2024/7/20 16:10
加载中...