2024-01-23 マリオ RPG / PAST #3 K
仕事で Rust を書いている。
上の子が昨日マリオ RPG をクリアしたけど「カジオーを倒したのは夢」というキノピオのセリフを受けてもう一度倒しに行こうとしている。
PAST #3 第三回 アルゴリズム実技検定 過去問
- K - コンテナの移動
https://atcoder.jp/contests/past202005-open/tasks/past202005_k
- 提出: https://atcoder.jp/contests/past202005-open/submissions/49607308
- ポインタをつけかえるみたいな操作をする
- コンテナの下を指すもの、机の一番上を指すものを用意すればなんとかなる
use proconio::{input, marker::Usize1};
fn main() {
input! {
n: usize,
q: usize,
ftx: [(Usize1, Usize1, Usize1); q],
};
let mut cb = vec![n; n];
let mut dt = (0..n).collect::<Vec<usize>>();
for (f, t, x) in ftx {
let (dt_f, dt_t, cb_x) = (dt[f], dt[t], cb[x]);
(dt[f], dt[t], cb[x]) = (cb_x, dt_f, dt_t);
}
let mut ans = vec![n; n];
for i in 0..n {
let mut p = dt[i];
while p < n {
ans[p] = i;
p = cb[p];
}
}
for a in ans {
println!("{}", a + 1);
}
}
今日のコミット。
- rust-atcoder 1 commit