사용자 도구

사이트 도구


ps:problems:boj:2458

키 순서

ps
링크acmicpc.net/…
출처BOJ
문제 번호2458
문제명키 순서
레벨골드 4
분류

플로이드

시간복잡도O(V^3)
인풋사이즈V<=500
사용한 언어Python
제출기록51552KB / 1096ms
최고기록768ms
해결날짜2021/09/07

풀이

  • N의 범위가 다른 것을 제외하고는 Cow Contest과 같은 문제이다. 풀이는 그쪽 참고.

코드

"""Solution code for "BOJ 2458. 키 순서".

- Problem link: https://www.acmicpc.net/problem/2458
- Solution link: http://www.teferi.net/ps/problems/boj/2458

Tags: [Floyd]
"""

import sys


def main():
    N, M = [int(x) for x in sys.stdin.readline().split()]
    higher_rankers = [set() for _ in range(N)]
    lower_rankers = [set() for _ in range(N)]
    for _ in range(M):
        a, b = [int(x) for x in sys.stdin.readline().split()]
        higher_rankers[a - 1].add(b - 1)
        lower_rankers[b - 1].add(a - 1)

    for i in range(N):
        for higher_ranker in higher_rankers[i]:
            lower_rankers[higher_ranker].update(lower_rankers[i])
        for lower_ranker in lower_rankers[i]:
            higher_rankers[lower_ranker].update(higher_rankers[i])

    answer = sum(1 for i in range(N)
                 if len(higher_rankers[i]) + len(lower_rankers[i]) == N - 1)
    print(answer)


if __name__ == '__main__':
    main()

토론

댓글을 입력하세요:
W Y P J A
 
ps/problems/boj/2458.txt · 마지막으로 수정됨: 2021/09/07 15:25 저자 teferi