#include<algorithm>
using namespace std;
int s1,s2,s3,s4;
int a[22],b[22],c[22],d[22];
int ans1,ans2,ans3,ans4;
void dfs4(int k,int t)
{
if(k>s4) return;
t=t-d[k];
//cout<<t<<" k"<<k<<endl;
if(t<0)
{
t=-t;
ans4=ans4+t;
}
dfs4(k+1,t);
return ;
}
void dfs1(int k,int t)
{
if(k>s1) return;
t=t-a[k];
//cout<<t<<" k"<<k<<endl;
if(t<0)
{
t=-t;
ans1=ans1+t;
}
dfs1(k+1,t);
return ;
}
void dfs2(int k,int t)
{
if(k>s2) return;
t=t-b[k];
//cout<<t<<" k"<<k<<endl;
if(t<0)
{
t=-t;
ans2=ans2+t;
}
dfs2(k+1,t);
return ;
}
void dfs3(int k,int t)
{
if(k>s3) return;
t=t-c[k];
//cout<<t<<" k"<<k<<endl;
if(t<0)
{
t=-t;
ans3=ans3+t;
}
dfs3(k+1,t);
return ;
}
bool cmp(int a,int b)
{
return a>b;
}
int main()
{
cin>>s1>>s2>>s3>>s4;
for(int i=1;i<=s1;i++) cin>>a[i];
for(int i=1;i<=s2;i++) cin>>b[i];
for(int i=1;i<=s3;i++) cin>>c[i];
for(int i=1;i<=s4;i++) cin>>d[i];
sort(a+1,a+1+s1,cmp);
sort(b+1,b+1+s2,cmp);
sort(c+1,c+1+s3,cmp);
sort(d+1,d+1+s4,cmp);
dfs1(1,0);
dfs2(1,0);
dfs3(1,0);
dfs4(1,0);
cout<<ans1+ans2+ans3+ans4<<endl;
/* cout<<ans2<<endl;
cout<<ans3<<endl;
cout<<ans4<<endl;*/
}```
k是第几个元素,t传给下一个。