直接上代码吧
#include <bits/stdc++.h>
using namespace std;
int q[5]={0};
int t[5][20]={0};
int minn;
int Count =0;
int sum1=0,sum2=0;
void dfs(int s,int step)
{
if(step>q[s])
{
minn=min(minn,max(sum1,sum2));
return ;
}
sum1+=t[s][step];
dfs(s,step+1);
sum1-=t[s][step];
sum2+=t[s][step];
dfs(s,step+1);
sum2-=t[s][step];
return ;
}
int main()
{
for(int i=1;i<=4;i++)
{
cin>>q[i];
}
for(int i=1;i<=4;i++)
{
minn=INT_MAX;
for(int j=1;j<=q[i];j++)
{
cin>>t[i][j];
}
dfs(i,1);
Count+=minn;
}
cout<<Count ;
return 0;
}