2024-02-15 dependabot / PAST #4 F
dependabot に従った細かいバージョンアップ。
- bouzuya/serde-firestore-value (crates:serde-firestore-value) 0.5.3
- bouzuya/genpi 0.4.5
- bouzuya/genuuid 0.5.8
Magic Trackpad のおそらく 7 回目の充電。だいたい 20+ 日ごとに充電が必要になっている。
PAST #4 第四回 アルゴリズム実技検定 過去問
- F - 構文解析
https://atcoder.jp/contests/past202010-open/tasks/past202010_f
- 提出: https://atcoder.jp/contests/past202010-open/submissions/50291674
- 問題の意味がうまくとれていなくて混乱した
- 単語の出現回数で並べたときに K 番目に出現回数が多い単語を出力する
- ただし K 番目になる単語が複数ある場合は AMBIGUOUS を出力する
- 出現回数を数えて、出現回数で並べて、先頭から K - 1 個を無視して、 K 個目が複数かを調べて、複数なら AMBIGUOUS そうでなければその単語をを出力する
use std::{
cmp::Reverse,
collections::{BTreeMap, HashMap},
};
use proconio::input;
fn main() {
input! {
n: usize,
k: usize,
s: [String; n],
};
let mut map = HashMap::new();
for s_i in s {
*map.entry(s_i).or_insert(0_usize) += 1;
}
let mut map2 = BTreeMap::new();
for (s, c) in map {
map2.entry(Reverse(c)).or_insert_with(Vec::new).push(s);
}
let mut sum = 0_usize;
for (_, ss) in map2.into_iter() {
if sum + ss.len() < k {
sum += ss.len();
continue;
}
if ss.len() == 1 {
println!("{}", ss[0]);
} else {
println!("AMBIGUOUS");
}
return;
}
}
今日のコミット。
- rust-atcoder 1 commit
- serde-firestore-value 4 commits
- genpi 2 commits
- genuuid 2 commits