P2392 kkksc03考前临时抱佛脚 - 洛谷

101 阅读1分钟

P2392 kkksc03考前临时抱佛脚 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

#include<iostream>
using namespace std;
int  s[5];  //s存储科目
int  a[5][25];  //a存储每个科目的题目要花费的时间


int l,r,minn=1e9,ans;
void dfs(int p,int n)  //
{
	//递归结束条件
	if(p>s[n])//一共就4个科目,如果做完了就返回
	{
		minn=min(minn,max(l,r));
		return;
	}
	
	
	l+=a[n][p];
	dfs(p+1,n);//下一道题目
    l-=a[n][p];  //
    
    r+=a[n][p];
    dfs(p+1,n);
    r-=a[n][p];
}

int main()
{
	

	
	//读取4个科目及其对应的题目数量
	for(int i=1;i<=4;i++)cin>>s[i];
	
	
	
	//输入每个科目每道题花费的时间
	for(int i=1;i<=4;i++)//4个科目
	{
		for(int j=1;j<=s[i];j++)//每一科习题集每道题目所消耗的时间。
		{
			cin>>a[i][j];
		}
			l=0,r=0;  //左脑右脑都还没用
			dfs(1,i);//从第一个科目开始,做第i个题目
			
		    ans+=minn;
		    minn=1e9;//科一做完了,重置一下,还有科二科三科四
	}
     cout<<ans<<endl;
	return 0;
}