競プロ典型 90 問
- 006 - Smallest Subsequence(★5)
https://atcoder.jp/contests/typical90/tasks/typical90_f
- 提出: https://atcoder.jp/contests/typical90/submissions/50686393
- 1 文字目は 0..N + 1 - K から最小を選ぶ
- 2 文字目は 1文字目の位置+1..N + 1 - (K - 1) から最小を選ぶ
- …… を K 文字分繰り返せば良い
use proconio::{input, marker::Chars}; fn main() { input! { n: usize, k: usize, s: Chars, }; let mut ans = vec![]; let mut l = 0_usize; for j in (1..=k).rev() { let r = n + 1 - j; let min_i = s[l..r] .iter() .copied() .enumerate() .min_by_key(|&(_, c)| c) .map(|(i, _)| l + i) .unwrap(); ans.push(s[min_i]); l = min_i + 1; } println!("{}", ans.into_iter().collect::<String>()); }
今日のコミット。
- rust-atcoder 1 commit
- genuuid 2 commits
- genpi 4 commits