結果
| 問題 | No.2 素因数ゲーム |
| コンテスト | |
| ユーザー |
threepipes_s
|
| 提出日時 | 2015-10-05 18:54:49 |
| 言語 | Java (openjdk 23) |
| 結果 |
AC
|
| 実行時間 | 67 ms / 5,000 ms |
| コード長 | 2,381 bytes |
| コンパイル時間 | 4,476 ms |
| コンパイル使用メモリ | 79,388 KB |
| 実行使用メモリ | 37,056 KB |
| 最終ジャッジ日時 | 2024-12-26 11:54:29 |
| 合計ジャッジ時間 | 7,695 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 31 |
ソースコード
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.BitSet;
import java.util.HashMap;
public class Main{
public static void main(String[] args){
try {
(new Solve()).solve();
} catch (NumberFormatException | IOException e) {
e.printStackTrace();
}
}
}
class Solve{
void solve() throws NumberFormatException, IOException{
final ContestScanner in = new ContestScanner();
int n = in.nextInt();
final int N = n;
MultiSet<Integer> set = new MultiSet<>();
for(int i=2; i*i<=N; i++){
while(n%i==0){
set.add(i);
n /= i;
}
}
if(n > 1) set.add(n);
int res = 0;
for(int i: set.values()){
res ^= i;
}
System.out.println(res==0 ? "Bob" : "Alice");
}
}
class MultiSet<T> extends HashMap<T, Integer>{
@Override
public Integer get(Object key) {
if(this.containsKey(key)) return super.get(key);
return 0;
}
public void add(T key){
if(this.containsKey(key)) super.put(key, super.get(key)+1);
else super.put(key, 1);
}
public void add(T key, int val){
if(this.containsKey(key)) super.put(key, super.get(key)+val);
else super.put(key, val);
}
}
class ContestWriter{
private PrintWriter out;
public ContestWriter(String filename) throws IOException{
out = new PrintWriter(new BufferedWriter(new FileWriter(filename)));
}
public ContestWriter() throws IOException{out = new PrintWriter(System.out);}
public void println(String str){out.println(str);}
public void print(String str){out.print(str);}
public void close(){out.close();}
}
class ContestScanner{
BufferedReader reader;
String[] line;
int idx;
public ContestScanner() throws FileNotFoundException{
reader = new BufferedReader(new InputStreamReader(System.in));
}
public String nextToken() throws IOException{
if(line == null || line.length <= idx){
line = reader.readLine().trim().split(" ");
idx = 0;
}
return line[idx++];
}
public long nextLong() throws IOException, NumberFormatException{
return Long.parseLong(nextToken());
}
public int nextInt() throws NumberFormatException, IOException{
return (int)nextLong();
}
public double nextDouble() throws NumberFormatException, IOException{
return Double.parseDouble(nextToken());
}
}
threepipes_s