結果
| 問題 |
No.628 Tagの勢い
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2020-02-21 21:04:54 |
| 言語 | Rust (1.83.0 + proconio) |
| 結果 |
AC
|
| 実行時間 | 2 ms / 2,000 ms |
| コード長 | 1,144 bytes |
| コンパイル時間 | 28,988 ms |
| コンパイル使用メモリ | 377,848 KB |
| 実行使用メモリ | 5,248 KB |
| 最終ジャッジ日時 | 2024-10-08 20:05:04 |
| 合計ジャッジ時間 | 15,152 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 19 |
ソースコード
use std::collections::HashMap;
fn main() {
let mut n = String::new();
std::io::stdin().read_line(&mut n).ok();
let n: usize = n.trim().parse().unwrap();
let mut tag2count: HashMap<String, usize> = HashMap::new();
for _ in 0..n {
let mut ab = String::new();
std::io::stdin().read_line(&mut ab).ok();
let mut point = String::new();
std::io::stdin().read_line(&mut point).ok();
let point: usize = point.trim().split_whitespace().skip(1).next().unwrap().parse().unwrap();
let mut tags = String::new();
std::io::stdin().read_line(&mut tags).ok();
tags.trim().split_whitespace().for_each(|tag| {
if let Some(x) = tag2count.get_mut(&tag.to_string()) {
*x += point;
} else {
tag2count.insert(tag.to_string().to_owned(), point);
}
});
}
let mut result: Vec<_> = tag2count.iter().collect();
result.sort_by_key(|pair| pair.0);
result.reverse();
result.sort_by_key(|pair| pair.1);
result.iter().rev().take(10).for_each(|r| {
println!("{} {}", r.0, r.1);
});
}