빨래
시간 제한3초메모리 제한128 MB
각 친구의 양말과 셔츠에 서로 다른 색을 배정하되 친구끼리 색을 공유하지 않도록 하면서 사용하는 색의 수를 최소로 줄이는 문제다.
문제
몇몇 친구들이 함께 빨래를 하기로 했다. 모두 깔끔한 성격이라 매일 깨끗한 양말 한 켤레와 셔츠 한 벌을 입는다. 이제 더러워진 양말과 셔츠를 모두 빨았고, 빨래집게로 널어서 말리려고 한다.
다음 규칙을 지키기로 했다.
- 양말 한 짝은 빨래집게 한 개로 고정한다.
- 셔츠 한 벌은 빨래집게 세 개로 고정한다.
- 한 사람의 양말에 쓰는 빨래집게는 모두 같은 색이어야 한다.
- 한 사람의 셔츠에 쓰는 빨래집게는 모두 같은 색이어야 한다.
- 서로 다른 사람의 옷에는 같은 색의 빨래집게를 쓸 수 없다.
- 위 조건을 모두 지키면서, 사용하는 빨래집게 색의 종류 수를 최소로 한다.
친구 가 일 동안 빨래를 모았다면, 그 친구에게는 양말 켤레와 셔츠 벌이 있으므로, 양말에는 빨래집게 개(모두 같은 색), 셔츠에는 빨래집게 개(모두 같은 색)가 필요하다. 한 사람이 양말과 셔츠에 같은 색을 써도 되고, 서로 다른 두 색을 써도 된다.
친구들은 가진 빨래집게를 색깔별로 개수를 세어 두었다. 사용해야 하는 색 종류 수의 최솟값을 구하여라.
입력
첫째 줄에 친구의 수 과 사용할 수 있는 빨래집게 색의 종류 수 가 주어진다 ().
둘째 줄에 개의 정수 이 주어진다 (). 는 친구 가 빨래를 모은 일수이다.
셋째 줄에 개의 정수 가 주어진다 (). 는 번째 색의 빨래집게 개수이다.
출력
규칙에 맞게 모든 빨래를 널기 위해 필요한 빨래집게 색 종류 수의 최솟값을 한 줄에 출력한다. 불가능하다면 대신 NIE를 출력한다.
설명
첫 번째 예제에는 친구가 두 명 있다. 첫 번째 친구()는 양말에 빨래집게 개, 셔츠에 개가 필요하고, 두 번째 친구()는 양말에 개, 셔츠에 개가 필요하다. 이므로 두 번째 친구는 빨래집게가 개인 첫 번째 색을 양말과 셔츠에 함께 쓸 수 있다. 그러면 첫 번째 친구는, 예를 들어 각각 개씩 있는 두 번째 색과 네 번째 색을 하나는 양말, 하나는 셔츠에 쓸 수 있다. 모두 합해 세 가지 색을 사용한다.