카드 정리 1
시간 제한2초메모리 제한128 MB
상자마다 색깔별 카드 개수가 주어질 때, 최대 한 상자만 여러 색을 담도록 하고 나머지 색은 한 상자에 모이게 만드는 최소 이동 횟수를 구한다.
문제
태수는 카드를 모아 박스에 보관한다. 어느 날 태수의 동생이 카드를 가지고 논 뒤 박스에 다시 넣었지만, 태수가 정한 기준대로 넣지는 않았다. 그래서 태수는 카드를 다시 정리하려고 한다.
박스는 N개이고, 카드 색상은 M가지이다. 태수는 다음 조건을 만족하도록 카드를 정리하려고 한다.
- 최대 1개의 박스를 조커 박스로 지정할 수 있다. 조커 박스에는 서로 다른 색의 카드를 함께 보관해도 된다.
- 조커 박스를 제외한 모든 박스는 비어 있거나, 한 가지 색의 카드만 담고 있어야 한다.
- 각 색상에 대해, 조커 박스에 들어 있는 카드를 제외하면 그 색상의 카드는 모두 같은 박스에 있어야 한다. 어떤 색상의 카드가 전부 조커 박스에 들어 있어도 된다.
각 박스에 각 색상의 카드가 몇 장 들어 있는지가 주어진다. 위 조건을 만족시키기 위해 필요한 이동 횟수의 최솟값을 구하라. 한 번의 이동은 한 박스에서 카드 1장 이상을 꺼내 다른 박스에 넣는 것을 뜻한다. 한 번에 꺼낸 카드들의 색상은 서로 달라도 된다.
입력
첫째 줄에 박스의 개수 N과 카드 색상의 개수 M이 주어진다.
둘째 줄부터 N개의 줄에는 각 박스의 카드 정보가 주어진다. 각 줄은 M개의 정수로 이루어져 있으며, 차례대로 1번 색상, 2번 색상, ..., M번 색상 카드의 개수를 나타낸다.
출력
조건을 만족시키기 위해 필요한 이동 횟수의 최솟값을 출력한다.
제한
1 <= N, M <= 50- 한 박스에 들어 있는 같은 색상 카드의 수는 최대 9장이다.