結果
問題 | No.275 中央値を求めよ |
ユーザー |
|
提出日時 | 2020-08-13 15:15:36 |
言語 | Rust (1.83.0 + proconio) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,022 bytes |
コンパイル時間 | 15,334 ms |
コンパイル使用メモリ | 380,404 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-10-09 19:13:27 |
合計ジャッジ時間 | 14,573 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 WA * 1 |
other | AC * 28 WA * 10 |
ソースコード
fn getline() -> String{ let mut __ret=String::new(); std::io::stdin().read_line(&mut __ret).ok(); return __ret; } fn main() { // 1行目取得 let l = getline(); // 2行目取得 let ll = getline(); // 1行目を数値に変換 let gl: u32 = l.trim().parse().unwrap(); // 2行目をベクタに変換 let gll: Vec<_> = ll.trim().split(' ').collect(); // 2行目のベクタが&strなので、i32数値に変換 let mut glli: Vec<_> = gll.iter().map(|x| x.parse::<i32>().unwrap()).collect(); // ソート glli.sort(); // 中央値なので、ソート後の配列数から2で割った配列のIndexを取得 let index = (gl / 2) as usize; // 偶数の場合は、隣接する2つの数値を足した値を2で割った数が中央地 if gl % 2 == 0 { println!("{}", (glli[index - 1] + glli[index]) / 2) } else { // 奇数の場合は、真ん中なので、そのまま出力 println!("{}", glli[index]); } }