結果
| 問題 |
No.103 素因数ゲーム リターンズ
|
| コンテスト | |
| ユーザー |
kou6839
|
| 提出日時 | 2015-03-28 00:55:40 |
| 言語 | Java (openjdk 23) |
| 結果 |
AC
|
| 実行時間 | 178 ms / 5,000 ms |
| コード長 | 887 bytes |
| コンパイル時間 | 2,208 ms |
| コンパイル使用メモリ | 79,720 KB |
| 実行使用メモリ | 46,164 KB |
| 最終ジャッジ日時 | 2024-06-29 01:28:02 |
| 合計ジャッジ時間 | 7,412 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 5 |
| other | AC * 20 |
ソースコード
import java.math.BigInteger;
import java.util.*;
public class Main {
static int[] grandy;
static int cul(int x){
int www=x;
if(grandy[x]!=-1) return grandy[x];
Set<Integer> set = new HashSet<>();
for(int i=2;i*i<=x;i++){
if(x%i==0){
x/=i;
set.add(cul(www/i));
if(x%i==0){
set.add(cul(www/(i*i)));
while(x%i==0) x/=i;
}
}
}
if(x>1){
set.add(cul(www/x));
}
int res=0;
while(set.contains(res)) res++;
return grandy[www]=res;
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
grandy = new int[10001];
Arrays.fill(grandy, -1);
grandy[0]=0;
grandy[1]=0;
for(int i=2;i<10001;i++){
grandy[i]=cul(i);
}
int n = sc.nextInt();
int ans=0;
for(int i=0;i<n;i++){
ans^=grandy[sc.nextInt()];
}
if(ans==0){
System.out.println("Bob");
}else{
System.out.println("Alice");
}
}
}
kou6839