用户输出
1
系统信息
Exited with return code 0
编号 | 题目 | 状态 | 分数 | 总时间 | 内存 | 代码 / 答案文件 | 提交者 | 提交时间 |
---|---|---|---|---|---|---|---|---|
#49418 | #1086. jwp的幸运集合 | Accepted | 100 | 94 ms | 756 K | C++ / 1.2 K | 电类917-尹慷 | 2021-07-02 21:23:27 |
#include <iostream>
#include <map>
int a[50];
using namespace std;
int main() {
int n;
cin >> n;
map<int, int> mp, mp1, mp2;
for (int i = 0; i < n; i++) {
cin >> a[i];
}
int sum = 0;
int tol, t, x;
int ans = 0;
for (int mask = 0, tol = 1 << (n / 2); mask < tol; mask++) {
t = 0;
sum = 0;
for (int i = 0; i < (n / 2); i++) {
if ((mask >> i) & 1) {
sum = sum + a[i];
t++;
}
}
if (t % 2 == 1)
mp1[sum]++;
if (t % 2 == 0)
mp2[sum]++;
}
for (int mask = 0, tol = 1 << (n - n / 2); mask < tol; mask++) {
sum = 0;
x = 0;
for (int i = 0; i < (n - n / 2); i++) {
if ((mask >> i) & 1) {
sum = sum + a[i + n / 2];
x++;
}
}
if (x % 2 == 0) {
ans = ans + mp2[-sum];
}
if (x % 2 == 1) {
ans = ans + mp1[-sum];
}
}
cout << ans - 1;
return 0;
}
31
749 349 69 -880 282 -926 -831 225 988 552 -193 634 369 476 204 487 387 -803 -370 -975 -17 -485 3
<40 bytes omitted>
用户输出
260459
系统信息
Exited with return code 0
31
362 -14 -181 -465 -400 -232 26 963 70 728 -728 -222 -510 854 139 386 555 994 103 279 213 76 953
<36 bytes omitted>
用户输出
81861
系统信息
Exited with return code 0
用户输出
16383
系统信息
Exited with return code 0