아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

빨래

시간 제한3초메모리 제한128 MB

요약
각 친구의 양말과 셔츠에 서로 다른 색을 배정하되 친구끼리 색을 공유하지 않도록 하면서 사용하는 색의 수를 최소로 줄이는 문제다.
난이도

보통10점 중 7점

유형
그리디, 정렬, 이분 탐색
정답자
아직 제출이 없습니다

문제

몇몇 친구들이 함께 빨래를 하기로 했다. 모두 깔끔한 성격이라 매일 깨끗한 양말 한 켤레와 셔츠 한 벌을 입는다. 이제 더러워진 양말과 셔츠를 모두 빨았고, 빨래집게로 널어서 말리려고 한다.

다음 규칙을 지키기로 했다.

  • 양말 한 짝은 빨래집게 한 개로 고정한다.
  • 셔츠 한 벌은 빨래집게 세 개로 고정한다.
  • 한 사람의 양말에 쓰는 빨래집게는 모두 같은 색이어야 한다.
  • 한 사람의 셔츠에 쓰는 빨래집게는 모두 같은 색이어야 한다.
  • 서로 다른 사람의 옷에는 같은 색의 빨래집게를 쓸 수 없다.
  • 위 조건을 모두 지키면서, 사용하는 빨래집게 색의 종류 수를 최소로 한다.

친구 ii가 did_i일 동안 빨래를 모았다면, 그 친구에게는 양말 did_i켤레와 셔츠 did_i벌이 있으므로, 양말에는 빨래집게 2⋅di2 \cdot d_i개(모두 같은 색), 셔츠에는 빨래집게 3⋅di3 \cdot d_i개(모두 같은 색)가 필요하다. 한 사람이 양말과 셔츠에 같은 색을 써도 되고, 서로 다른 두 색을 써도 된다.

친구들은 가진 빨래집게를 색깔별로 개수를 세어 두었다. 사용해야 하는 색 종류 수의 최솟값을 구하여라.

입력

첫째 줄에 친구의 수 nn과 사용할 수 있는 빨래집게 색의 종류 수 kk가 주어진다 (2≤n,k≤1,000,0002 \le n, k \le 1{,}000{,}000).

둘째 줄에 nn개의 정수 d1,d2,…,dnd_1, d_2, \ldots, d_n이 주어진다 (1≤di≤1,000,0001 \le d_i \le 1{,}000{,}000). did_i는 친구 ii가 빨래를 모은 일수이다.

셋째 줄에 kk개의 정수 l1,l2,…,lkl_1, l_2, \ldots, l_k가 주어진다 (1≤li≤4,000,0001 \le l_i \le 4{,}000{,}000). lil_i는 ii번째 색의 빨래집게 개수이다.

출력

규칙에 맞게 모든 빨래를 널기 위해 필요한 빨래집게 색 종류 수의 최솟값을 한 줄에 출력한다. 불가능하다면 대신 NIE를 출력한다.

설명

첫 번째 예제에는 친구가 두 명 있다. 첫 번째 친구(d1=3d_1 = 3)는 양말에 빨래집게 66개, 셔츠에 99개가 필요하고, 두 번째 친구(d2=4d_2 = 4)는 양말에 88개, 셔츠에 1212개가 필요하다. 8+12=208 + 12 = 20이므로 두 번째 친구는 빨래집게가 2020개인 첫 번째 색을 양말과 셔츠에 함께 쓸 수 있다. 그러면 첫 번째 친구는, 예를 들어 각각 1010개씩 있는 두 번째 색과 네 번째 색을 하나는 양말, 하나는 셔츠에 쓸 수 있다. 모두 합해 세 가지 색을 사용한다.

예제2

  1. 예제 1

    입력
    2 4
    3 4
    20 10 8 10
    
    예상 출력
    3
    
  2. 예제 2

    입력
    3 8
    5 4 3
    14 14 14 14 14 14 14 14
    
    예상 출력
    NIE