만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

범죄 파티

시간 제한1초메모리 제한512 MB

요약
용의자마다 두 친구와 각각의 임계값이 주어질 때, 모든 용의자가 임계값이 K 이하인 친구에게서 변호를 받되 한 사람이 한 용의자만 변호하도록 하는 최소 비용 K를 구한다.
난이도

보통10점 중 7점

유형
이분 탐색, 그리디, 그래프, 구현
정답자
아직 제출이 없습니다

문제

용의자 NN명이 있다. 용의자마다 친구가 정확히 2명 있다. 용의자는 모두 알리바이가 없어서 친구에게 거짓 알리바이 증언을 부탁한다. 부탁을 들어준 친구를 그 용의자의 변호인이라고 한다.

위증은 범죄라서 용의자는 친구에게 성의를 보여야 한다. 친구는 받은 성의를 수치로 환산하고, 만족하면 범죄에 협력해 변호인이 되어 준다. 친구가 만족하기 시작하는 수치를 임계값이라고 한다. 한 용의자의 두 친구도 친한 정도가 달라 임계값이 서로 다를 수 있고, 서로 다른 두 용의자와 친구인 사람은 용의자마다 임계값이 다를 수 있다.

웬만한 성의로는 꿈쩍하지 않는 친구를 움직이려고 용의자들은 파티를 연다. 파티에는 용의자의 친구가 모두 초대되고, 파티에 들인 비용이 클수록 만족하는 친구도 많아진다. 파티 비용이 KK이면 임계값이 KK 이하인 친구는 모두 그 용의자의 변호인이 되어 준다.

용의자끼리는 서로를 변호하지 못하므로 용의자 집단과 친구 집단은 완전히 분리되어 있다. 한 사람이 여러 용의자를 변호하면 의심을 사기 때문에 한 사람은 최대 한 용의자의 변호인이 된다. 또 한 사람에게 용의자 친구는 최대 2명이다. 즉 서로 다른 용의자 X1X_1, X2X_2, X3X_3 모두와 친구인 사람 AA는 없다.

각 용의자의 친구 관계와 두 친구의 임계값이 주어질 때, 모든 용의자가 변호인을 1명 이상 두게 하는 최소 파티 비용 KK를 구하라.

입력

첫째 줄에 용의자의 수 NN (1≤N≤2000001 \le N \le 200000)이 주어진다. 다음 NN개의 줄에는 ii번째 용의자의 정보가 주어진다. 한 줄에 한 친구의 번호 AiA_i, 그 친구를 변호인으로 두기 위한 임계값 KAiKA_i, 다른 친구의 번호 BiB_i, 그 친구의 임계값 KBiKB_i가 차례로 주어진다. 친구 번호는 1 이상 2N2N 이하이고, 임계값은 0 이상 1,000,000 이하의 정수다.

출력

모든 용의자가 변호인을 두게 되는 최소 파티 비용 KK를 출력한다. 어떤 비용으로도 불가능하면 -1을 출력한다.

예제3

  1. 예제 1

    입력
    3
    1 5 2 6
    2 7 3 8
    3 9 1 10
    
    예상 출력
    9
    
  2. 예제 2

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

    입력
    2
    1 1 2 100
    1 2 3 5
    
    예상 출력
    5