結果
問題 | No.387 ハンコ |
ユーザー |
![]() |
提出日時 | 2016-07-04 03:45:58 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 610 ms / 5,000 ms |
コード長 | 1,261 bytes |
コンパイル時間 | 915 ms |
コンパイル使用メモリ | 91,616 KB |
実行使用メモリ | 7,936 KB |
最終ジャッジ日時 | 2024-10-12 20:01:14 |
合計ジャッジ時間 | 6,762 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 9 |
ソースコード
#include <cstdio>#include <cassert>#include <cmath>#include <cstring>#include <algorithm>#include <iostream>#include <vector>#include <map>#include <set>#include <functional>#include <tuple>#include <bitset>#define _rep(_1, _2, _3, _4, name, ...) name#define rep2(i, n) rep3(i, 0, n)#define rep3(i, a, b) rep4(i, a, b, 1)#define rep4(i, a, b, c) for (int i = int(a); i < int(b); i += int(c))#define rep(...) _rep(__VA_ARGS__, rep4, rep3, rep2, _)(__VA_ARGS__)using namespace std;using i64 = long long;using u8 = unsigned char;using u32 = unsigned;using u64 = unsigned long long;using f80 = long double;#pragma GCC optimize "O3" // enable SIMDvoid solve() {const int M = 100000;static bitset<2 * M> A, B, C;int N; scanf("%d", &N);vector<vector<int>> As(M);rep(i, N) {int a; scanf("%d", &a);As[a - 1].push_back(i);}rep(i, N) {int b; scanf("%d", &b);if (b) B[i] = 1;}rep(i, M) if (As[i].size()) {A.reset();for (auto&& a : As[i]) A |= B << a;C ^= A;}rep(i, 2 * N - 1) {puts(C[i] ? "ODD" : "EVEN");}}int main() {clock_t beg = clock();solve();clock_t end = clock();fprintf(stderr, "%.3f sec\n", double(end - beg) / CLOCKS_PER_SEC);return 0;}