기지방호
시간 제한1초메모리 제한1024 MB
대형 F개와 날마다 마지막에 정해진 대형이 주어질 때, 하루 T번씩 L일 동안 대형을 바꾸는 피로도 합의 최솟값을 구합니다.
문제
오늘부터 일 동안 훈련 기간이다. 훈련 기간에 매일 부대원들은 기지방호 전술집에서 선별한 진법들을 시연해야 한다.
훈련을 위해 기지방호 전술집에서 개의 진법을 선별하여 1번부터 번까지 번호를 붙였다. 번 진법을 로 나타낸다 (). 각 진법은 훈련 장소에 맞춰 칸으로 주어진다. 는 진법 의 번째 행, 번째 열 칸을 뜻하며, 그 칸에 사람이 서 있어야 하면 1, 아니면 0이다. 단, 은 모든 , (, )에 대해 을 만족한다.
훈련의 첫째 날은 진법부터 시작하고, 둘째 날부터는 전날 마지막으로 시연한 진법에서 시작한다. 하루가 끝날 때까지 회에 걸쳐 추가로 진법을 시연한다.
진법이 바뀔 때마다 병사들의 피로도가 쌓인다. 현재 시연 중인 진법이 이고 다음에 시연할 진법이 이면, 와 가 서로 다른 쌍의 개수를 제곱한 값만큼 피로도가 더해진다 (, ).
각 날의 마지막으로 시연할 진법은 이미 정해져 있다. 주임원사님은 으뜸병사에게 나머지 시연할 진법을 선별된 진법들로 채워서 총피로도가 최소가 되도록 루틴을 짜라고 명령했다. 그 루틴의 총피로도를 구하라.
입력
첫 번째 줄에 진법의 개수 , 훈련 기간 , 하루에 시연할 진법의 개수 , 훈련 장소의 크기 , 이 공백으로 구분된 정수로 주어진다.
두 번째 줄부터 진법의 정보가 순서대로 주어지며, 진법마다 줄씩 모두 줄에 걸쳐 있다. 각 진법은 줄에 걸쳐 개의 값이 공백으로 구분되어 주어진다. 번째 줄의 번째 값이 이며, 각 값은 0 또는 1이다.
이후 첫 번째 날부터 번째 날까지 각 날의 마지막으로 시연할 진법의 번호 이 공백으로 구분되어 주어진다.
출력
첫 번째 줄에 피로도를 최소화하는 루틴의 총피로도를 출력한다.
제한
- ()
- 모든 , (, )에 대해