Little Boxes(大数模板题)

Little boxes on the hillside.

Little boxes made of ticky-tacky.

Little boxes.

Little boxes.

Little boxes all the same.

There are a green boxes, and b pink boxes.

And c blue boxes and d yellow boxes.

And they are all made out of ticky-tacky.

And they all look just the same.

Input

The input has several test cases. The first line contains the integer t (1 ≤ t ≤ 10) which is the total number of test cases.

For each test case, a line contains four non-negative integers a, b, c and d where a, b, c, d ≤ 2^{62}262, numbers of green boxes, pink boxes, blue boxes and yellow boxes.

扫描二维码关注公众号,回复: 3307286 查看本文章

Output

For each test case, output a line with the total number of boxes.

样例输入

4
1 2 3 4
0 0 0 0
1 0 0 0
111 222 333 404

样例输出

10
0
1
1070
#include<iostream>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<map>
#include<vector>
#include<stack>
#include<queue>
#include<set>
#define mod 998244353;
#define Max 0x3f3f3f3f;
#define Min 0xc0c0c0c0;
#define mst(a) memset(a,0,sizeof(a))
#define f(i,a,b) for(int i=a;i<b;i++)
using namespace std;
typedef long long ll;
const int maxn=100005;
ll temp;
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(){
    ios::sync_with_stdio(false);
    int n;
    while(cin>>n){
        while(n--){
            char a[105],b[105],c[105],d[105],ans[105];
            cin>>a>>b>>c>>d;
            add(a,b,ans);
            add(ans,c,ans);
            add(ans,d,ans);
            cout<<ans<<endl;
        }
    }
    return 0;
}


猜你喜欢

转载自blog.csdn.net/qq1013459920/article/details/82634156