結果
| 問題 |
No.21 平均の差
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2019-01-01 11:44:42 |
| 言語 | Rust (1.83.0 + proconio) |
| 結果 |
AC
|
| 実行時間 | 1 ms / 5,000 ms |
| コード長 | 1,432 bytes |
| コンパイル時間 | 13,535 ms |
| コンパイル使用メモリ | 378,380 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-11-06 21:36:37 |
| 合計ジャッジ時間 | 13,836 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 10 |
コンパイルメッセージ
warning: fields `num_count` and `group` are never read
--> src/main.rs:13:5
|
11 | struct InputData {
| --------- fields in this struct
12 | /// 数字の個数
13 | num_count: i32,
| ^^^^^^^^^
14 | /// グループ
15 | group: i32,
| ^^^^^
|
= note: `InputData` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
= note: `#[warn(dead_code)]` on by default
ソースコード
//! No.21 平均の差
//! https://yukicoder.me/problems/no/21
use std::io::stdin;
#[cfg(test)]
mod test;
/// 入力データ
#[derive(Debug)]
struct InputData {
/// 数字の個数
num_count: i32,
/// グループ
group: i32,
/// 数字
nums: Vec<i32>,
}
/// エントリポイント
fn main() {
let input = input_data();
println!("{}", average(input));
}
/// 復号化します。
fn average(input: InputData) -> f32 {
let mut sorted = input.nums;
// 降順にソート
sorted.sort_by(|a, b| b.cmp(a));
// 最大の平均
let max_val = sorted[0] as f32;
// 最小の平均
let min_val = sorted[sorted.len() - 1] as f32;
(max_val - min_val).ceil()
}
/// 標準入力から文字列を取得します。
fn input_data() -> InputData {
// 1行目
let mut s1 = String::new();
stdin().read_line(&mut s1).unwrap();
let num_count: i32 = s1.trim().parse().unwrap();
// 2行目
let mut s2 = String::new();
stdin().read_line(&mut s2).unwrap();
let group: i32 = s2.trim().parse().unwrap();
// 3行目以降
let mut nums = Vec::new();
// 1行目で取得したデータ件数分ループ
for _i in 0..num_count {
let mut s3 = String::new();
stdin().read_line(&mut s3).unwrap();
nums.push(s3.trim().parse().unwrap());
}
InputData {
num_count,
group,
nums,
}
}