【ABC166 C】「Peaks」を解く【Python3】

「AtCoder」解説一覧へ

AtCoder丘陵にあるN個の展望台のうち、条件を満たす良い展望台がいくつあるのかを求める問題です。

提出
n, m = map(int,input().split())
h = list(map(int,input().split()))
li = [1]*n

for i in range(m):
    a, b = map(int,input().split())
    if li[a-1] == 1 and h[a-1] <= h[b-1]:
        li[a-1] = 0
    if li[b-1] == 1 and h[b-1] <= h[a-1]:
        li[b-1] = 0

print(sum(li))

入力は全て整数です。

すべての要素が「1」リストを作成し、条件に満たないものに「0」を代入します。

条件を満たすものは1のままなので、最終的にliの合計値が答えです。

【ABC166】解説記事リスト

「AtCoder」解説一覧に戻る

1 COMMENT

かんちゃん

入力した時に、道で連結される展望台の高さを
すぐに比べられるのですね。頭が固いので、入力は入力、
処理(高さの判定)は処理、と分けて、考えていました。
とてもスマートで、頭の中が整理されている解法ですね。
勉強になりました。これからも、いろいろ、教えて下さい。

返信する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です