結果
問題 | No.387 ハンコ |
ユーザー |
|
提出日時 | 2016-07-03 13:39:54 |
言語 | C++11 (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 1,008 ms / 5,000 ms |
コード長 | 932 bytes |
コンパイル時間 | 1,414 ms |
コンパイル使用メモリ | 164,188 KB |
実行使用メモリ | 8,320 KB |
最終ジャッジ日時 | 2024-10-12 03:53:28 |
合計ジャッジ時間 | 11,456 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 9 |
ソースコード
#include <bits/stdc++.h>using namespace std;typedef vector< int > vi;typedef vector< vi > vvi;const int MAXN = 1e5 + 5;const int MAXCOL = 1e5;int main(){ios::sync_with_stdio( false );cin.tie( 0 );cout.tie( 0 );int N; cin >> N;vi A( N ), B( N );for( int i = 0; i < N; ++i )cin >> A[ i ];for( int i = 0; i < N; ++i )cin >> B[ i ];vvi C( MAXCOL ); // positions of a particular colorfor( int i = 0; i < N; ++i )C[ A[ i ] ].push_back( i );bitset< 2 * MAXN - 1 > stamp;for( int i = 0; i < N; ++i )stamp[ i ] = B[ i ];bitset< 2 * MAXN - 1 > paper;for( int i = 1; i <= MAXCOL; ++i ){bitset< 2 * MAXN - 1 > ink;for( int p : C[ i ] )ink |= stamp << p;paper ^= ink;}for( int i = 0; i < 2 * N - 1; ++i )cout << ( paper[ i ] ? "ODD" : "EVEN" ) << "\n";return 0;}