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

hamayanhamayan's blog

Low Elements [AtCoder Beginner Contest 152 C]

https://atcoder.jp/contests/abc152/tasks/abc152_c

解説

https://atcoder.jp/contests/abc152/submissions/9706322

指定されている条件が難しく書かれている。
これを整理すると自ずと解法が出てくる。

ある条件を満たすiの条件は、A[0]~A[i]の最小値がA[i]であることである。

よって、頭から最小値を順番に計算しておき、A[i]と等しいかを判別して、
等しいなら答えをインクリメントする。

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

    int mi = inf;
    int ans = 0;
    rep(i, 0, N) {
        chmin(mi, P[i]);
        if (mi == P[i]) ans++;
    }
    cout << ans << endl;
}