[BOJ 1982] 호텔예약

View as PDF

Submit solution

Points: 4
Time limit: 2.0s
Memory limit: 128M

Problem types
Allowed languages
Assembly, Awk, C, C++, Java, Pascal, Perl, Python, Sed, Text

홍준이는 월드여행사에서 일을 하고 있다. 그런데 여행사에서 다음과 같은 일을 홍준이에게 시켰다. M명의 남자와 F명의 여자가 있다. 그리고 C쌍의 결혼을 한 커플이 있다. 이러한 사람들을 호텔에 적절히 분배를 시키려 하는데 다음과 같은 조건을 만족시키며 방을 나누어 줘야 한다.

  1. 서로 결혼을 하지 않은 남자와 여자는 같은 방에 들어갈 수 없다.
  2. 결혼을 한 남자와 여자가 방에 들어가 있으면 그 두 사람 이외에 다른 사람은 그 방에 같이 들어가 있을 수 없다.
  3. 그렇다고 결혼을 한 사람들이 반드시 같은 방에 들어가야 한다는 것이 아니다.

이러한 조건이 있을 때, 홍준이가 해야 할 일은 호텔을 예약하는데 필요한 비용을 최소로 하려는 것이다. 홍준이를 도와 남자의 수 m, 여자의 수 f, 그리고 방의 수 r, 결혼을 한 쌍의 수 c가 주어지고 방에 들어갈 수 있는 최대 인원과 비용이 주어져 있을 때 최소비용을 구하는 프로그램을 작성하시오.

입력 형식

첫째 줄에 남자의 수 m(1 ≤ m ≤ 100), 여자의 수 f(1 ≤ f ≤ 100), 방의 수 (1 ≤ r ≤ 100), 그리고 결혼을 한 쌍의 수 c(0 ≤ c ≤ min(m,f))가 공백을 사이에 두고 주어진다. 그리고 두 번째 줄부터 r+1번째 줄까지 방의 정보가 주어지는데 각 줄에는 두 개의 정수 1 ≤ a ≤ 5, 1 ≤ b ≤ 1000이 공백을 사이에 두고 주어진다. a는 번째 방에 들어갈 수 있는 최대인원, b는 번째 방을 얻는데 필요한 비용을 의미한다.

출력 형식

첫째 줄에 방을 빌리는데 필요한 최소비용을 출력한다. 만약에 모든 사람이 방을 빌리는 것이 불가능 할 경우에는 Impossible을 첫째 줄에 대신 출력한다.

예제 입력 1

2 1 3 1
3 5
2 10
2 4

예제 출력 1

9

예제 입력 2

1 1 1 0
1 4

예제 출력 2

Impossible

Comments

There are no comments at the moment.