blog.bouzuya.net

2023-03-22 ABC279 の A, B, C, D, E を解いた / Seraph's Last Stand をクリアした

ABC279 : トヨタシステムズプログラミングコンテスト2022(AtCoder Beginner Contest 279) の A, B, C, D, E を解いた。

use proconio::{input, marker::Usize1};

fn main() {
    input! {
        n: usize,
        m: usize,
        a: [Usize1; m],
    };

    let mut pos1 = vec![0];
    for a_i in a.iter().copied().take(m - 1) {
        let x = *pos1.last().unwrap();
        let next = if x == a_i {
            a_i + 1
        } else if x == a_i + 1 {
            a_i
        } else {
            x
        };
        pos1.push(next);
    }

    let mut ans = vec![0_usize; m];
    let mut s = (0..n).collect::<Vec<usize>>();
    for (i, a_i) in a.into_iter().enumerate().rev() {
        ans[i] = s[pos1[i]];
        s.swap(a_i, a_i + 1);
    }

    for a in ans {
        println!("{}", a + 1);
    }
}

bouzuya/tsukota に削除機能を追加した。


『 Seraph's Last Stand 』をクリアした。ネタバレ注意。

  • プレイ時間: 16.5h
  • 実績コンプリート
  • リロール無料になるアセンションが強い
  • エピックが 5% で出るアセンションとリロール無料のアセンションで任意のカードを引ける
  • 毎 wave コモンを追加で得られるアセンションが強い
  • ただし移動速度などがどんどん上がってしまい回避不可能になる
  • 負傷と貫通の組み合わせも強い
  • 負傷を実質攻撃力代わりにしていた
  • wave 80 あたりから処理が追いつかなくなる

今日のコミット。