검색 결과 모으기
면접 대비시간 제한3초메모리 제한1024 MB
n개의 결과에 대한 k개 검색 엔진의 순위가 주어질 때, 각 엔진 순위와의 위치 차이 제곱합이 최소가 되는 통합 순위를 구합니다.
문제
당신은 Benelux Algorithm Preview Collector라는 알고리즘 전용 새 검색 엔진을 만들고 있습니다. 홍보는 이미 끝났고 투자자도 많이 확보했지만, 아직 코드는 한 줄도 쓰지 않았습니다. 출시까지 남은 시간이 다섯 시간뿐이라 직접 랭킹 알고리즘을 구현할 시간은 없습니다. 그래서 사용자가 알고리즘을 검색할 때마다 검색어를 가장 인기 있는 다른 검색 엔진 개에 전달하고, 그 결과를 사용하기로 합니다.
이 개의 검색 엔진은 각각 관련도 추정값 순으로 정렬된 개의 결과 목록을 줍니다. 시험해 본 어떤 검색어에 대해서도 검색 엔진들은 항상 같은 개의 결과를 반환하며, 엔진마다 순서만 다릅니다. 이 개의 순위를 하나의 순위로 합쳐야 합니다.
합쳐진 순위에는 비용을 매깁니다. 각 결과 과 각 검색 엔진 에 대해, 합쳐진 순위가 을 위치 에 두고 검색 엔진 가 을 위치 에 두었다면 비용은 입니다. 합쳐진 순위의 총비용은 계산된 개의 비용을 모두 더한 값입니다.
예를 들어 두 번째 샘플 케이스를 봅시다. 첫 번째 검색 엔진은 샘플 출력과 같은 결과를 주므로 비용은 입니다. 두 번째 검색 엔진은 인접한 두 결과를 맞바꾸므로 비용은 입니다. 세 번째 검색 엔진은 첫 번째 결과를 두 칸 뒤로 보내고, 나머지 두 결과를 각각 한 칸씩 앞으로 당기므로 비용은 입니다. 총비용은 이며, 가능한 모든 순서 중 최소입니다.
BAPC는 총비용이 최소가 되도록 결과를 어떤 순서로 출력해야 할까요?
입력
입력은 다음과 같습니다.
- 결과의 개수 과 검색 엔진의 개수 가 주어지는 한 줄 (, )
- 줄. 각 줄에는 어떤 검색 엔진이 정렬한 결과 순서대로 개의 정수가 주어집니다. 각 줄에는 부터 까지의 정수가 정확히 한 번씩 나타납니다.
출력
비용이 최소가 되도록 합쳐진 결과의 순서를 출력하세요.
유효한 해가 여러 개라면 그중 아무거나 출력해도 됩니다.