はまやんはまやんはまやん

hamayanhamayan's blog

増減管理 / Up and Down [第一回 アルゴリズム実技検定 過去問 B]

https://atcoder.jp/contests/past201912-open/tasks/past201912_b

解説

https://atcoder.jp/contests/past201912-open/submissions/9252279

隣り合う2要素について、実装をしていく問題。
実装を頑張る問題であり、特に注意点も無いが、vectorのsizeメソッドを-1する時は注意が必要。
vectorのsizeメソッドの戻り値はunsignedであり、-1するとアンダーオーバーフローしてunsignedの最大値になるので注意。

int N, A[101010];
//---------------------------------------------------------------------------------------------------
void _main() {
    cin >> N;
    rep(i, 0, N) cin >> A[i];

    rep(i, 0, N - 1) {
        if (A[i] == A[i + 1]) printf("stay\n");
        else if (A[i] > A[i + 1]) printf("down %d\n", A[i] - A[i + 1]);
        else printf("up %d\n", A[i + 1] - A[i]);
    }
}