만드는 중입니다

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

백 투 더 퓨처

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

요약
호환 쌍 그래프가 주어질 때, 고른 각 정점이 부분집합 안에서 이웃을 A개 이상, 비이웃을 B개 이상 가지는 가장 큰 부분집합의 크기를 구한다.
난이도

어려움10점 중 8점

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

문제

에멧 박사는 더 안전한 시간 여행 장치를 만들고 있다. 박사는 서로 다른 희귀 금속 조각을 NN개 모았다. 어떤 두 조각은 서로 호환된다. 박사는 호환되는 금속 쌍 MM개를 모두 적은 목록이 있고, 목록에 없는 쌍은 호환되지 않는다.

장치가 작동하려면 금속 집합을 하나 골라야 한다. 고른 집합 안에서 각 금속은 적어도 AA개의 다른 금속과 호환되어야 한다. 또 균형을 맞추기 위해, 같은 집합 안에서 적어도 BB개의 다른 금속과 호환되지 않아야 한다.

금속이 많을수록 에너지가 커지고 장치도 안전해진다. 두 조건을 모두 만족하는 가장 큰 집합의 크기를 구하라.

입력

첫째 줄에 정수 NN, MM, AA, BB가 공백으로 구분되어 주어진다. NN은 금속 조각의 개수 (1≤N≤1051 \le N \le 10^5), MM은 호환되는 쌍의 개수 (1≤M≤1051 \le M \le 10^5), AA와 BB는 문제에서 설명한 값이다 (0≤A,B<N0 \le A, B < N). 금속에는 11번부터 NN번까지 번호가 붙어 있다.

다음 MM개 줄에는 호환되는 금속 쌍을 나타내는 두 정수 XX와 YY가 주어진다 (1≤X,Y≤N1 \le X, Y \le N, X≠YX \ne Y). 같은 쌍이 두 번 주어지는 경우는 없다.

출력

두 조건을 모두 만족하는 가장 큰 금속 집합의 크기를 한 줄에 출력한다. 조건을 만족하는 집합이 하나도 없으면 00을 출력한다.

예제5

  1. 예제 1

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

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

    입력
    7 12 2 2
    1 2
    2 3
    3 1
    4 5
    5 6
    6 4
    3 4
    7 1
    2 7
    3 7
    4 7
    5 7
    
    예상 출력
    6
    
  4. 예제 4

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

    입력
    5 10 4 0
    1 2
    1 3
    1 4
    1 5
    2 3
    2 4
    2 5
    3 4
    3 5
    4 5
    
    예상 출력
    5