結果
問題 | No.1477 Lamps on Graph |
ユーザー | kuro_B |
提出日時 | 2023-05-15 23:08:21 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 302 ms / 2,000 ms |
コード長 | 2,320 bytes |
コンパイル時間 | 160 ms |
コンパイル使用メモリ | 82,444 KB |
実行使用メモリ | 119,448 KB |
最終ジャッジ日時 | 2024-05-08 04:03:11 |
合計ジャッジ時間 | 11,262 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 123 ms
82,540 KB |
testcase_01 | AC | 124 ms
82,516 KB |
testcase_02 | AC | 124 ms
82,644 KB |
testcase_03 | AC | 124 ms
82,508 KB |
testcase_04 | AC | 124 ms
82,532 KB |
testcase_05 | AC | 128 ms
82,580 KB |
testcase_06 | AC | 122 ms
82,564 KB |
testcase_07 | AC | 125 ms
82,436 KB |
testcase_08 | AC | 120 ms
82,520 KB |
testcase_09 | AC | 125 ms
82,316 KB |
testcase_10 | AC | 126 ms
82,492 KB |
testcase_11 | AC | 124 ms
82,652 KB |
testcase_12 | AC | 283 ms
96,304 KB |
testcase_13 | AC | 230 ms
98,700 KB |
testcase_14 | AC | 254 ms
100,752 KB |
testcase_15 | AC | 205 ms
91,184 KB |
testcase_16 | AC | 189 ms
88,156 KB |
testcase_17 | AC | 191 ms
87,456 KB |
testcase_18 | AC | 223 ms
100,568 KB |
testcase_19 | AC | 218 ms
97,084 KB |
testcase_20 | AC | 203 ms
88,656 KB |
testcase_21 | AC | 218 ms
103,004 KB |
testcase_22 | AC | 181 ms
87,336 KB |
testcase_23 | AC | 221 ms
93,524 KB |
testcase_24 | AC | 277 ms
106,796 KB |
testcase_25 | AC | 203 ms
90,152 KB |
testcase_26 | AC | 251 ms
102,572 KB |
testcase_27 | AC | 215 ms
92,608 KB |
testcase_28 | AC | 222 ms
93,468 KB |
testcase_29 | AC | 218 ms
93,192 KB |
testcase_30 | AC | 181 ms
94,872 KB |
testcase_31 | AC | 193 ms
88,516 KB |
testcase_32 | AC | 253 ms
118,652 KB |
testcase_33 | AC | 247 ms
113,700 KB |
testcase_34 | AC | 228 ms
119,448 KB |
testcase_35 | AC | 300 ms
108,336 KB |
testcase_36 | AC | 291 ms
107,508 KB |
testcase_37 | AC | 270 ms
105,988 KB |
testcase_38 | AC | 302 ms
105,952 KB |
testcase_39 | AC | 296 ms
107,524 KB |
ソースコード
###スニペット始まり### import sys, re from copy import copy, deepcopy from math import ceil, floor, sqrt,factorial, gcd, pi, degrees, radians, sin, asin, cos, acos, tan, atan2 from statistics import mean, median from collections import Counter, deque, defaultdict from heapq import heapify, heappop, heappush from itertools import permutations, accumulate, product, combinations, combinations_with_replacement from bisect import bisect, bisect_left, bisect_right from functools import reduce, lru_cache from string import ascii_uppercase, ascii_lowercase from decimal import Decimal, ROUND_HALF_UP #四捨五入用 def input(): return sys.stdin.readline().rstrip('\n') #easy-testのpypyでは再帰数を下げる。 if __file__=='prog.py': sys.setrecursionlimit(10**5) else: sys.setrecursionlimit(10**6) def lcm(a, b): return a * b // gcd(a, b) #3つ以上の最大公約数/最小公倍数。Nを要素数、Mを数値の大きさとして、O(NlogM) def gcd_v2(l: list): return reduce(gcd, l) def lcm_v2(l: list): return reduce(lcm, l) #nPk def nPk(n, k): return factorial(n) // factorial(n - k) #逆元 def modinv(a, mod=10**9+7): return pow(a, mod-2, mod) INF = float('inf') MOD = 10 ** 9 + 7 ###スニペット終わり### N, M=map(int, input().split()) A=list(map(int, input().split())) es=[] for _ in range(M): a, b = map(int, input().split()) es.append([a,b]) K=int(input()) B=list(map(int, input().split())) lamps=[0]*N #0がoff、1がon for b in B: lamps[b-1]=1 graph = [[] for _ in range(N)] input_edge=[0]*N for i in range(M): a,b=es[i] if A[a-1]<A[b-1]: graph[a-1].append(b-1) input_edge[b-1]+=1 elif A[a-1]>A[b-1]: graph[b-1].append(a-1) input_edge[a-1]+=1 ans = [] que=deque([i for i in range(N) if input_edge[i] == 0]) while que: q = que.popleft() if not lamps[q]: for e in graph[q]: input_edge[e] -= 1 if input_edge[e] == 0: que.append(e) else: #切り替えする。 lamps[q]=0 #消す。 ans.append(q) for e in graph[q]: input_edge[e] -= 1 lamps[e]=0 if lamps[e]==1 else 1 if input_edge[e] == 0: que.append(e) print(len(ans)) for a in ans: print(a+1)