blogskol

思わず声に出して読みたくなるブログ

PAST 丁寧な実装集

PAST は良問が多く、過去問を完全に理解するだけで AtCoder 青色程度の実力になれそうな感覚がある
考察だけで無く実装を問われる問題も多く、AC 後は他人のコードを読んで綺麗な実装を学ぶのが望ましい

綺麗な実装を探すのは大変なときもあるので、各問題の(C++での)丁寧な実装を記録する
各問題を綺麗な実装で通したくなったので、せっかくだからインターネットにまとめておきたいと言うのが本音

解説は必要だと判断すればコード中にコメントで残す

以下は共通のテンプレート

#include <bits/stdc++.h>
using namespace std;
#define REP(i,n) for(int i=0;i<(n);i++)

int main(){
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
}

ライブラリや snippet は必要に応じて使う
特にライブラリに関しては内部の実装を真似る必要は無く、各関数が何を返すかのみに注目すれば十分

注意

「綺麗な実装」は完全に主観なので肌に合わないことは当然あると思う
また、競技プログラミング以外のプログラミングのことは一切考えていない
単に競技で強くなりたい層向けなので、「業務で書くには行儀の悪いコード」のような批判は的外れ

001

A B C D E F G H I J K L M N

002

A B C D E

003

004

005

006

007

008

009