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