题目描述
给定一个集合 ss(集合元素数量 \le 30≤30),求出此集合所有子集元素之和。
输入格式
集合中的元素(元素 \le 1000≤1000)
输出格式
ss 所有子集元素之和。
输入输出样例
输入 #1复制
2 3
输出 #1复制
10
说明/提示
【样例解释】
子集为:\varnothing, \{ 2 \}, \{ 3 \}, \{ 2, 3 \}∅,{2},{3},{2,3},和为 2 + 3 + 2 + 3 = 102+3+2+3=10。
【数据范围】
对于 100 \%100% 的数据,1 \le \lvert s \rvert \le 301≤∣s∣≤30,1 \le s_i \le 10001≤si≤1000,ss 所有子集元素之和 \le {10}^{18}≤1018。
代码如下:
#include<cstdio>
long long s=0,x=0,a,i=0;
int main(){
while(scanf("%lld",&a)!=EOF){
x++;
s+=a;
}
for(int i=1;i<x;i++){
s*=2;
}
printf("%lld",s);
}