結果
問題 |
No.942 プレゼント配り
|
ユーザー |
![]() |
提出日時 | 2019-12-07 21:22:57 |
言語 | Rust (1.83.0 + proconio) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,414 bytes |
コンパイル時間 | 12,781 ms |
コンパイル使用メモリ | 386,888 KB |
実行使用メモリ | 12,816 KB |
最終ジャッジ日時 | 2024-12-26 09:25:08 |
合計ジャッジ時間 | 15,321 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 13 WA * 5 |
ソースコード
use std::io::*; use std::str::FromStr; fn read<T: FromStr>() -> T { let stdin = stdin(); let stdin = stdin.lock(); let token: String = stdin .bytes() .map(|c| c.expect("failed to read char") as char) .skip_while(|c| c.is_whitespace()) .take_while(|c| !c.is_whitespace()) .collect(); token.parse().ok().expect("failed to parse token") } fn main() { let n: usize = read(); let k: usize = read(); let m = n / k; // 一人当たりのプレゼントの数 let mut ans = vec![vec![0; m]; k]; if m % 2 == 0 { for i in 0..m { for j in 0..k { if i % 2 == 0 { ans[j][i] = (i+1) * k - j } else { ans[j][i] = i * k + j + 1 } } } } else { let mut d = 0; for dd in 1..k { if (dd * m) % k == 0 { d = dd; break; } } if d == 0 { println!("No"); return; } for i in 0..m { for j in 0..k { let jj = (i+d*j) % k; ans[j][i] = i * k + jj + 1; } } } println!("Yes"); for i in 0..k { print!("{}", ans[i][0]); for j in 1..m { print!(" {}", ans[i][j]); } print!("\n"); } }