【搜索】kkksc03考前临时抱佛脚

题目传送门

Code

#include<iostream>
#include<cstdio>
#include<string>
#include<vector>
#include<algorithm>
#include<cstdlib>
#include<cmath>
#include<stack>
#include<map>
using namespace std;

int s[5],ans[5]={9999,9999,9999,9999,9999},l,r;
int w[5][30],b[5][30];

void dfs(int p,int no)
{
	if(no>s[p])
	{
		ans[p]=min(ans[p],max(l,r)); 
		return;
	}
	l+=w[p][no];dfs(p,no+1);l-=w[p][no];
	r+=w[p][no];dfs(p,no+1);r-=w[p][no];
}

int main()
{
    cin>>s[1]>>s[2]>>s[3]>>s[4];
	for(int k=1;k<=4;k++) 
    	for(int i=1;i<=s[k];i++)
    		cin>>w[k][i];
    for(int k=1;k<=4;k++) 
	{
		l=r=0;
    	dfs(k,1);
	}
    cout<<ans[1]+ans[2]+ans[3]+ans[4];
    
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/gongdakai/p/13199357.html