최대 이분 매칭

이분 그래프의 두 부분 크기 n1, n2, 최대 매칭 크기 ans, 최소 차수 d가 주어질 때 가능한 최대 간선 수를 구하고, 불가능하면 -1을 출력한다.

보통6그래프그리디수학조합론아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

무방향 그래프에서 매칭은 간선의 부분 집합이며, 이 부분 집합에 속한 두 간선은 정점을 공유하지 않는다. 최대 매칭은 크기가 가장 큰 매칭이다.

다음 조건을 모두 만족하는 그래프 GG가 존재하는지 판정하고, 존재하면 그러한 GG에 존재할 수 있는 간선의 최대 개수를 구하는 프로그램을 작성하시오.

  • GG는 단순 무방향 그래프이다.
  • GG는 이분 그래프이고, 두 부분의 크기는 각각 n1n_1n2n_2이다.
  • GG의 최대 매칭의 크기는 ansans이다.
  • GG의 모든 정점의 차수는 dd 이상이다.

입력

첫째 줄에 n1n_1, n2n_2, ansans, dd가 공백으로 구분되어 주어진다. (1n1,n21091 \le n_1, n_2 \le 10^9, 1ans,dmin(n1,n2)1 \le ans, d \le \min(n_1, n_2))

출력

조건을 만족하는 그래프가 존재하지 않으면 -1을 출력한다. 존재하면 그러한 그래프에 존재할 수 있는 간선의 최대 개수를 출력한다.