結果
| 問題 |
No.1876 Xor of Sum
|
| ユーザー |
|
| 提出日時 | 2022-03-17 15:04:05 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 344 ms / 2,000 ms |
| コード長 | 1,613 bytes |
| コンパイル時間 | 3,745 ms |
| コンパイル使用メモリ | 230,600 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-10-01 10:58:52 |
| 合計ジャッジ時間 | 11,016 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 27 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
#include <atcoder/all>
using namespace atcoder;
#define rep(i, n) for (int i = 0; i < n; ++i)
#define REP(i, x, n) for (int i = (x); i < n; ++i)
#define rrep(i, n) for (int i = n - 1; i >= 0; --i)
#define RREP(i, x, n) for (int i = n - 1; i >= (x); --i)
#define all(x) x.begin(), x.end()
using ll = long long;
using vi = vector<int>;
using vvi = vector<vi>;
using vvvi = vector<vvi>;
using mint = modint998244353;
using vm = vector<mint>;
using vvm = vector<vm>;
using vvvm = vector<vvm>;
const int INF = 1e9;
// int pow(ll a, int n, int m)
// {
// ll ans = 1;
// a %= m;
// while (n)
// {
// if (n & 1)
// ans = ans * a % m;
// a = a * a % m;
// n >>= 1;
// }
// return (int)ans;
// }
// struct combination
// {
// vm fact, ifact;
// combination(int n) : fact(n + 1), ifact(n + 1)
// {
// fact[0] = 1;
// for (int i = 1; i <= n; ++i)
// fact[i] = fact[i - 1] * i;
// ifact[n] = fact[n].inv();
// for (int i = n; i >= 1; --i)
// ifact[i - 1] = ifact[i] * i;
// }
// mint operator()(int n, int k)
// {
// if (k < 0 || k > n)
// return 0;
// return fact[n] * ifact[k] * ifact[n - k];
// }
// } comb(5000005);
int main()
{
int n;
cin >> n;
bitset<4000005> dp(1);
rep(i, n)
{
int a;
cin >> a;
dp ^= (dp << a);
}
int ans = 0;
rep(i, 4000001)
{
if (dp[i])
ans ^= i;
}
cout << ans << endl;
return 0;
}