给定一个集合 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 <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
int main() {
int s, i = 0;
long long ans = 0;
while (scanf("%d", &s) != EOF) {
i++;
ans+=s;
}
ans*=pow(2,i-1);
printf("%lld", ans);
return 0;
}