/*大数加法*/
# include<cstdio>
# include<cstring>
# include<cstdlib>
#include<iostream>
using namespace std;
void add(char* a,char* b,char* c)
{
int i,j,k,max,min,temp;
char *s,*pmax,*pmin;
max=strlen(a);
min=strlen(b);
if (max<min)
{
temp=max;
max=min;
min=temp;
pmax=b;
pmin=a;
}
else
{
pmax=a;
pmin=b;
}
s=(char*)malloc(sizeof(char)*(max+1));
s[0]='0';
for (i=min-1,j=max-1,k=max;i>=0;i--,j--,k--)
s[k]=pmin[i]-'0'+pmax[j];
for (;j>=0;j--,k--)
s[k]=pmax[j];
for (i=max;i>=0;i--)
if (s[i]>'9')
{
s[i]-=10;
s[i-1]++;
}
if (s[0]=='0')
{
for (i=0;i<=max;i++)
c[i-1]=s[i];
c[i-1]='\0';
}
else
{
for (i=0;i<=max;i++)
c[i]=s[i];
c[i]='\0';
}
free(s);
}
int main()
{
int n;
cin>>n;
while(n--)
{
char a[100],b[100],c[100],d[100],ans[100];
cin>>a>>b>>c>>d;
add(a,b,ans);
add(ans,c,ans);
add(ans,d,ans);
cout<<ans<<endl;
}
return 0;
}
#include<iostream>
#include<malloc.h>
#include<cstring>
using namespace std;
char* add(const char *arr,const char *brr){
int lena=strlen(arr);
int lenb=strlen(brr);
int maxlen=(lena<=lenb)?lenb:lena;
char* sum=(char*)malloc(maxlen+2);
memset(sum,'0',maxlen+1);
sum[maxlen+1]=0;
int c=0;
while((lenb)>0 && (lena)>0){
lenb--;
lena--;
int left=arr[lena]-'0';
int right=brr[lenb]-'0';
int s=left+right+c;
c=s/10;
s%=10;
sum[maxlen--]=s+'0';
}
if(lena<=0){
while((lenb--)>0){
int left=0;
int right=brr[lenb]-'0';
int s=left+right+c;
c=s/10; //C是进位
s%=10;
sum[maxlen--]=s+'0';
}
}
else if(lenb<=0){
while((lena--)>0){
int left=arr[lena]-'0';
int right=0;
int s=left+right+c;
c=s/10;
s%=10;
sum[maxlen--]=s+'0';
}
}
sum[maxlen]=c+'0';
return sum;
}
int main (){
int t;
cin>>t;
while(t--){
char a[1000],b[1000],c[1000],d[1000];
cin>>a>>b>>c>>d;
char *sum=add(add(b,add(c,d)),a);
size_t pos=strspn(sum,"0"); // 返回第一个不为“ 0” 的下标
for (int i=pos;i<strlen (sum);i++){
cout<<sum[i];
}
if(pos==strlen (sum)) cout<<"0";
cout<<endl;
}
}