[AtCoder] ABC 152 C – Low Elements

2020年12月15日

問題

方針

\( 1 \leq j  \leq i \) において、\( P_i \leq P_j \) が成り立つことを確認するには、\( P_j \) の最小値が条件を満たしているかどうかを調べれば良いです。よって、最小値を更新しながら全探索を行います。

コード

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main() {
    int N;
    cin >> N;
    int P[N];
    for (int i = 0; i < N; i++) {
        cin >> P[i];
    }
    int v = P[0];
    int ans = 0;
    for (int i = 0; i < N; i++) {
        if (P[i] <= v) {
            ans++;
        }
        v = min(v, P[i]);
    }
    cout << ans << "\n";
    return 0;
}