#include <bits/stdc++.h>
using namespace std;
int a,b,c,d;
int arr1[250];
int arr2[250];
int arr3[250];
int arr4[250];
int tim;
int arr[300];
bool cmp(int x,int y)
{
return x>y;
}
int k;
//对第一种题目计算,所需最短时间
void recursion1(int step,int s1,int s2)
{
if(step==a)
{
arr[k++]=max(s1,s2);
return;
}
recursion1(step+1,s1+arr1[step],s2);
recursion1(step+1,s1,s2+arr1[step]);
}
//对第二种题目计算,所需最短时间
void recursion2(int step,int s1,int s2)
{
if(step==b)
{
arr[k++]=max(s1,s2);
return;
}
recursion2(step+1,s1+arr2[step],s2);
recursion2(step+1,s1,s2+arr2[step]);
}
//对第三种题目计算,所需最短时间
void recursion3(int step,int s1,int s2)
{
if(step==c)
{
arr[k++]=max(s1,s2);
return;
}
recursion3(step+1,s1+arr3[step],s2);
recursion3(step+1,s1,s2+arr3[step]);
}
//对第四种题目计算,所需最短时间
void recursion4(int step,int s1,int s2)
{
if(step==d)
{
arr[k++]=max(s1,s2);
return;
}
recursion4(step+1,s1+arr4[step],s2);
recursion4(step+1,s1,s2+arr4[step]);
}
int main()
{
cin>>a>>b>>c>>d;
for(int i=0;i<a;i++)
{
cin>>arr1[i];
}
for(int i=0;i<b;i++)
{
cin>>arr2[i];
}
for(int i=0;i<c;i++)
{
cin>>arr3[i];
}
for(int i=0;i<d;i++)
{
cin>>arr4[i];
}
recursion1(0,0,0);
sort(arr,arr+a);
tim+=arr[0];
k=0;
memset(arr,0,sizeof(arr));
recursion2(0,0,0);
sort(arr,arr+b);
tim+=arr[0];
k=0;
memset(arr,0,sizeof(arr));
recursion3(0,0,0);
sort(arr,arr+c);
tim+=arr[0];
k=0;
memset(arr,0,sizeof(arr));
recursion4(0,0,0);
sort(arr,arr+d);
tim+=arr[0];
cout<<tim;
return 0;
}
案例能过,但是全re,为啥子啊