[BZOJ2056]gift? 高精度?
Description
Input
输入的第一行为一个整数t。 接下来t行,每行包含九个自然数。
Output
输出t行 每行一个整数,表示\(2^a+2^b+2^c+2^d+2^e+2^f+2^g+2^h+i\)。
Sample Input
1
21 30 0 0 0 0 0 0 2147483647
Sample Output
3223322629
HINT
40% t<=1000
100% t<=100000 a,b,c,d,e,f,g,h<=60 i<=9223372036854775808
高精度?1MB空间。。。呵呵,unsigned long long乱搞即可。。
注意极限数据加爆了unsigned long long,特判一下
/*program from Wolfycz*/
#include<cmath>
#include<cstdio>
using namespace std;
typedef unsigned long long ull;
int T,i,tmp;
ull Ans,x;
int main(){
scanf("%d",&T);
for (;T;T--){
Ans=0;
for (i=1;i<=8;i++){
scanf("%d",&tmp);
Ans+=pow(2,tmp);
}
scanf("%llu",&x);
Ans+=x;
if (!Ans&&x) printf("18446744073709551616\n");
else printf("%llu\n",Ans);
}
return 0;
}