B - Who is Saikyo? Editorial by kyopro_friends


公式解説と同じです。

\(X\) が最強であるための必要条件は、「誰かが \(X\) より強い」という情報が存在しないことです。 この必要条件を満たすとき、\(X\) は最強である可能性があります。

したがって、全員が最強候補である状態から始めて、誰かより弱いことが判明した人を候補から取り除いていき、最後に残るのが1人であるかどうかを確かめることで問題を解くことができます。

実装例(Python)

N,M = map(int,input().split())
s=set(range(1,N+1))
for _ in range(M):
  win,lose=map(int,input().split())
  s.discard(lose)
print(-1 if len(s)!=1 else s.pop())

posted:
last update: