Edit

【pythonでABC152を解説】C - Low Elements

問題概要

問題ページ

問題文

\(1, \ldots, N\) の順列 \(P_1, \ldots, P_N\) が与えられます。
次の条件を満たす整数 \(i(1 \leq i \leq N)\) の個数を数えてください。

  • 任意の整数 \(j(1 \leq j \leq i)\) に対して、 \(P_i \leq P_j\)

制約

  • \(1 \leq N \leq 2 \times 10^5\)
  • \(P_1, \ldots, P_N\) は \(1, \ldots, N\) の順列である。
  • 入力はすべて整数である。

問題の考察

ACコード

import sys


def solve():
    input = sys.stdin.readline
    mod = 10 ** 9 + 7
    n = int(input().rstrip('\n'))
    p = list(map(int, input().rstrip('\n').split()))
    mn = 10 ** 20
    cnt = 0
    for v in p:
        if mn >= v:
            cnt += 1
        mn = min(mn, v)
    print(cnt)


if __name__ == '__main__':
    solve()

プログラミング

-Edit