1. 程式人生 > >hdu 6225 Little Boxes(題意+思維+不用大數)

hdu 6225 Little Boxes(題意+思維+不用大數)

Little Boxes

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 4079    Accepted Submission(s): 1547  

Problem Description

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, indicating the numbers of green boxes, pink boxes, blue boxes and yellow boxes.

Output

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

Sample Input

4

1 2 3 4

0 0 0 0

1 0 0 0

111 222 333 404

Sample Output

10

0

1

1070

【分析】 最大範圍是2^64-1  但是題目最大是2^64,所以不用大數模板的,直接把2^64直接拎出來討論就好了。嗯!很巧妙!隊友的思路哈哈哈

【程式碼】

#include<bits/stdc++.h>
using namespace std;
typedef unsigned long long LL;
int main()
{
	LL f1=13835058055282163712;
	LL f2=4611686018427387904;
	int t;
	scanf("%d",&t);
	while(t--)
	{
		LL a;
		int f=1;
		LL ans=0;
		for(int i=0;i<4;i++)
		{
			cin>>a;
			if(ans==f1&&a==f2)
			{
				printf("18446744073709551616\n");
				f=0;
			}
			ans+=a;
		}
		if(f)cout<<ans<<endl;
	}
}