結果
問題 |
No.183 たのしい排他的論理和(EASY)
|
ユーザー |
|
提出日時 | 2015-04-21 16:43:17 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 322 ms / 5,000 ms |
コード長 | 517 bytes |
コンパイル時間 | 435 ms |
コンパイル使用メモリ | 59,820 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-06-29 01:48:19 |
合計ジャッジ時間 | 3,224 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 18 |
ソースコード
#include <iostream> #include <algorithm> #include <vector> using namespace std; #define MAX_NUM 32769 int main() { bool dp[MAX_NUM] = {}, dp2[MAX_NUM] = {}; int N, a; cin >> N; dp[0] = 1; for (size_t i = 0; i < N; i++) { cin >> a; for (size_t j = 0; j < MAX_NUM; j++) { if (dp[j]) { dp2[a^j] = 1; } } for (size_t j = 0; j < MAX_NUM; j++) { dp[j] |= dp2[j]; } dp[a] = 1; } long long ans = 0; for (size_t i = 0; i < MAX_NUM; i++) { ans += dp[i]; } cout << ans << endl; }