結果
| 問題 |
No.7 プライムナンバーゲーム
|
| コンテスト | |
| ユーザー |
mottodora
|
| 提出日時 | 2016-10-30 09:47:25 |
| 言語 | Rust (1.83.0 + proconio) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 996 bytes |
| コンパイル時間 | 11,410 ms |
| コンパイル使用メモリ | 397,928 KB |
| 実行使用メモリ | 6,824 KB |
| 最終ジャッジ日時 | 2024-11-24 23:32:03 |
| 合計ジャッジ時間 | 12,373 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 10 WA * 7 |
ソースコード
fn getline() -> String{
let mut ret = String::new();
std::io::stdin().read_line(&mut ret).ok();
return ret;
}
fn eratosthenes(n: i32) -> Vec<i32> {
let mut v: Vec<i32> = (2..n+1).collect();
let mut i:i32 = 0;
while i < v.len() as i32 {
let a = v[i as usize];
v.retain(|&x| x< a+1 || x % a !=0);
i+=1;
}
v
}
fn max_prime(n: i32, primes: &Vec<i32>) -> i32 {
let mut i: i32 = 0;
let l = primes.len() as i32;
if n >= primes[(l-1) as usize] {
primes[(l-1) as usize]
}
else {
while primes[(i+1) as usize] <= n {
i += 1;
}
primes[i as usize]
}
}
fn main() {
let n: i32 = getline().trim().parse().unwrap();
let primes = eratosthenes(n);
let mut dp = [false; 10001];
for i in 4..(n+1) {
dp[i as usize] = !dp[(i-max_prime(i-2, &primes)) as usize];
}
if dp[n as usize] {
println!("Win");
}
else {
println!("Lose");
}
}
mottodora