結果
| 問題 |
No.387 ハンコ
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2016-07-02 14:51:56 |
| 言語 | Java (openjdk 23) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 1,208 bytes |
| コンパイル時間 | 2,017 ms |
| コンパイル使用メモリ | 77,588 KB |
| 実行使用メモリ | 59,556 KB |
| 最終ジャッジ日時 | 2024-10-12 00:46:39 |
| 合計ジャッジ時間 | 9,930 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | RE * 9 |
ソースコード
package yukicoder;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
new Main().solver();
}
void solver() {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int[] a = new int[N];
int[] b = new int[N];
for (int i = 0; i < N; i++) {
a[i] = sc.nextInt() - 1;
}
for (int i = 0; i < N; i++) {
b[i] = sc.nextInt();
}
int[][] bucket=makeBucket(a,100001);
long ans=0;
int[] stamp=new int[64];
for(int i=0;i<N;i++){
for(int j=0;j<64;j++){
stamp[j]|=b[i]<<(j+i);
}
}
for(int[] row:bucket){
long d=0;
for(int x:row){
d|=stamp[x];
}
ans^=d;
}
for(int i=0;i<2*N-1;i++){
if(((ans>>i)&1)==1){
System.out.println("ODD");
}else{
System.out.println("EVEN");
}
}
}
void tr(Object... o) {
System.out.println(Arrays.deepToString(o));
}
int[][] makeBucket(int[] a, int sup) {
int n = a.length;
int[][] bucket = new int[sup + 1][];
int[] bp = new int[sup + 1];
for(int i=0;i<n;i++){
bp[a[i]]++;
}
for(int i=0;i<sup+1;i++){
bucket[i]=new int[bp[i]];
}
for(int i=n-1;i>=0;i--){
bucket[a[i]][--bp[a[i]]]=i;
}
return bucket;
}
}