아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

축제

시간 제한3초메모리 제한128 MB

요약
선수들의 정수 기록 사이에 정확히 1초 차이 관계와 대소 관계가 주어질 때, 모든 조건을 만족하는 서로 다른 기록 값의 최대 개수를 구하고 불가능하면 NIE를 출력한다.
난이도

어려움10점 중 8점

유형
그래프, 최단 경로, 동적 계획법
정답자
아직 제출이 없습니다

문제

바이트버그에서 자선 축제가 열리고 있고, 당신은 모금 담당자 중 한 명입니다. 당신은 장애물 달리기 경주를 비롯한 여러 행사를 놓쳤습니다. 퍼즐 애호가인 바이트아사르는 자신이 낸 수수께끼를 풀면 큰 금액을 기부하겠다고 약속합니다.

당신은 경주 결과를 알지 못하지만, 바이트아사르가 일부 정보를 알려 주며 이렇게 묻습니다. 그가 알려 준 모든 조건에 어긋나지 않으면서 선수들이 기록할 수 있는 서로 다른 완주 시간의 최대 개수는 얼마일까요? 같은 순간에 결승선을 통과한 선수들은 같은 시간을 가집니다.

모든 선수의 완주 시간은 정수 초입니다. 바이트아사르는 선수들의 시간 사이에 성립하는 두 종류의 관계를 알려 줍니다.

  • 어떤 쌍 (a,b)(a, b): 선수 aa의 시간이 선수 bb의 시간보다 정확히 11초 작았다.
  • 어떤 쌍 (c,d)(c, d): 선수 cc의 시간이 선수 dd의 시간보다 크지 않았다.

선수들이 기록할 수 있는 서로 다른 시간의 최대 개수를 구하는 프로그램을 작성하세요.

입력

첫째 줄에 세 정수 nn, m1m_1, m2m_2가 주어집니다 (2≤n≤6002 \le n \le 600, 1≤m1+m2≤100 0001 \le m_1 + m_2 \le 100\,000). 각각 선수의 수, 첫 번째 종류의 관계 수, 두 번째 종류의 관계 수를 뜻합니다. 선수는 11번부터 nn번까지 번호가 매겨집니다.

다음 m1m_1개의 줄에는 각각 두 정수 aia_i와 bib_i가 주어집니다 (ai≠bia_i \ne b_i). 선수 aia_i의 시간이 선수 bib_i의 시간보다 정확히 11초 작았음을 뜻합니다.

그다음 m2m_2개의 줄에는 각각 두 정수 cic_i와 did_i가 주어집니다 (ci≠dic_i \ne d_i). 선수 cic_i의 시간이 선수 did_i의 시간보다 크지 않았음을 뜻합니다.

출력

바이트아사르가 알려 준 모든 관계와 어긋나지 않는, 서로 다른 완주 시간의 최대 개수를 정수 하나로 출력합니다.

모든 관계를 만족하는 시간 배정이 존재하지 않으면, 대신 NIE라는 단어 하나만 출력합니다.

힌트

첫 번째 예제에서는 조건에 맞는 결과가 두 가지 있습니다.

  1. 선수 33이 11위, 선수 11과 44가 공동 22위, 선수 22가 마지막.
  2. 선수 11과 33이 공동 11위, 선수 22와 44가 공동 22위.

첫 번째 결과는 서로 다른 시간이 세 가지로 두 번째보다 많으므로, 정답은 33입니다.

예제2

  1. 예제 1

    입력
    4 2 2
    1 2
    3 4
    1 4
    3 1
    
    예상 출력
    3
    
  2. 예제 2

    입력
    2 1 1
    1 2
    2 1
    
    예상 출력
    NIE