만드는 중입니다

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

ISP 합병

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

요약
서버 n대의 기존 연결과 각 서버의 소켓 상한이 주어질 때, 연결의 추가와 제거를 합쳐 k번 이하로 모든 서버를 하나로 연결할 수 있는지 판단합니다.
난이도

보통10점 중 6점

유형
그래프, 그리디, 유니온 파인드
정답자
아직 제출이 없습니다

문제

여러 지역의 인터넷 서비스 제공자(ISP)가 규모와 상관없이 정부의 명령으로 합병되었다. 정부는 최고 네트워크 인프라 책임자인 당신과 상의하지 않고 이 결정을 내렸으며, 이미 기한도 정해졌다.

당신은 nn대의 서버를 관리한다. 각 서버에는 다른 서버와 물리적으로 연결하는 데 쓰는 네트워크 소켓이 제한된 개수만큼 있다. 일부 서버는 이미 기존 네트워크에서 연결되어 있다. 서버 0이 서버 2와 연결되어 있으면 서버 2도 서버 0과 연결되어 있다. 연결은 전이중 이더넷 Cat6 케이블로 이루어지기 때문이다. 자기 자신과 연결된 서버는 없고, 두 서버가 둘 이상의 연결로 이어진 경우도 없다.

연결을 따라 모든 서버가 서로 도달할 수 있도록 서버들을 하나의 네트워크로 묶어야 한다. 기한까지 기존 인프라를 kk번만 편집할 수 있다. 편집은 두 서버 사이의 기존 연결을 제거하거나 새 연결을 추가하는 것이다.

각 서버의 소켓 수 제한을 지키면서, 최대 kk번의 편집으로 모든 서버를 하나의 네트워크로 묶을 수 있는지 판단하라.

입력

첫 줄에 공백으로 구분된 세 정수 nn, mm, kk가 주어진다. nn은 서버 수, mm은 기존 연결 수, kk는 편집할 수 있는 횟수이다. 1≤n≤1000001 \le n \le 100000, 0≤m≤2000000 \le m \le 200000, 0≤k≤500000 \le k \le 50000이다.

다음 줄에는 nn개의 정수 c0,c1,...,cn−1c_0, c_1, ..., c_{n-1}이 주어진다. cic_i는 ii번 서버의 네트워크 소켓 수이며, 1≤ci<n1 \le c_i < n을 만족한다.

이어지는 mm개의 줄에는 각각 두 정수 uju_j와 vjv_j가 주어진다. 기존 네트워크에서 서로 연결된 두 서버의 번호이다. 서버 번호는 0부터 시작한다. 어떤 서버도 소켓 수보다 많은 서버와 연결되어 있지 않다.

출력

kk번 이하의 편집으로 모든 서버를 하나의 네트워크로 묶을 수 있으면 "yes"를, 그렇지 않으면 "no"를 한 줄에 출력한다.

예제3

  1. 예제 1

    입력
    4 5 2
    3 3 3 3
    0 1
    0 3
    1 3
    1 2
    2 3
    
    예상 출력
    yes
    
  2. 예제 2

    입력
    5 4 4
    1 1 2 2 2
    0 1
    2 3
    3 4
    4 2
    
    예상 출력
    yes
    
  3. 예제 3

    입력
    3 0 3
    1 1 1
    
    예상 출력
    no