#include using namespace std; void solve(){ int n,na,nb,nc; cin>>n>>na>>nb>>nc; multiset s[3]; long long sum[3]={0,0,0}; set> vis; for(int i=0;i>x; if(i=sum[0]+sum[1]+sum[2]-max({sum[0],sum[1],sum[2]}) && vis.count(multiset{sum[0],sum[1],sum[2]})){ vis.insert(multiset{sum[0],sum[1],sum[2]}); int big; if(sum[0] == max({sum[0],sum[1],sum[2]}))big=0; else if(sum[1] == max({sum[0],sum[1],sum[2]}))big=1; else big=2; int small; if(sum[0] == min({sum[0],sum[1],sum[2]}))small=0; else if(sum[1] == min({sum[0],sum[1],sum[2]}))small=1; else small=2; int numb = *(s[big].begin()); int nums = *(s[small].rbegin()); sum[small]-=nums; sum[big]-=numb; sum[small]+=numb; sum[big]+=nums; s[big].erase(s[big].find(numb)); s[small].erase(s[small].find(nums)); s[big].insert(nums); s[small].insert(numb); } if(max({sum[0],sum[1],sum[2]})> T; for (int i = 1; i <= T; i++) { solve(); } return 0; }