結果
問題 |
No.7 プライムナンバーゲーム
|
ユーザー |
|
提出日時 | 2025-05-10 01:27:36 |
言語 | Rust (1.83.0 + proconio) |
結果 |
AC
|
実行時間 | 7 ms / 5,000 ms |
コード長 | 1,143 bytes |
コンパイル時間 | 21,117 ms |
コンパイル使用メモリ | 396,204 KB |
実行使用メモリ | 7,844 KB |
最終ジャッジ日時 | 2025-05-10 01:28:02 |
合計ジャッジ時間 | 22,369 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 17 |
ソースコード
/* * Author: srtry * Created: 2025-05-05T06:37:08+09:00 * Coding: utf-8-unix */ use proconio::input; use std::io::{stdout,Write,BufWriter}; fn primes_leq(&n:&usize) -> Vec<usize> { let mut primes:Vec<usize> = Vec::new(); let mut is_prime:Vec<bool> = vec![true;n+1]; is_prime[0] = false; is_prime[1] = false; for i in 2..=n { if is_prime[i] { primes.push(i); for j in i..=n/i { is_prime[i*j] = false; } } } return primes; } fn main() { input!{ n:usize } let out = stdout(); let mut out = BufWriter::new(out.lock()); let primes = primes_leq(&n); let mut is_winnum:Vec<bool> = vec![true;n+1]; let mut win:bool = false; for i in 2..=n as usize { win = false; for &prime in primes.iter() { if i<prime { break; } if !is_winnum[i-prime] { win = true; } } is_winnum[i] = win.clone(); } let ans:&str = if win {"Win"} else {"Lose"}; write!(out, "{}", ans).unwrap(); }