직사각형 채우기
시간 제한1초메모리 제한1024 MB
N x M 격자에 1부터 NM/4까지의 수를 각각 네 번씩 축에 평행한 직사각형의 네 꼭짓점에 놓아 직사각형 넓이의 합이 최대가 되게 배치한다.
문제
크기가 인 격자(두 값 모두 짝수)가 주어진다. 격자의 각 칸에 정수 하나를 채울 것이다.
사용할 수 있는 정수는 이며 이다. 각 정수 는 정확히 4번 등장해야 하며, 그 4칸은 축에 평행한 하나의 직사각형의 네 꼭짓점을 이루어야 한다. (즉, 서로 다른 두 개의 행과 서로 다른 두 개의 열을 선택했을 때 생기는 네 모서리 칸을 써야 한다.)
각 정수 가 만든 직사각형의 넓이를 라고 하자. 직사각형의 두 행 인덱스를 , 두 열 인덱스를 라고 하면
전체 점수는 이다.
점수를 최대로 만드는 유효한 배치를 하나 출력하라. 여러 정답이 가능하면 아무거나 출력해도 된다.
항상 가능한 입력만 주어진다.
입력
첫째 줄에 두 정수 이 주어진다.
출력
유효하고 점수가 최대가 되는 배치를 한 가지 출력한다.
- 줄에 걸쳐 각 줄마다 개의 정수를 공백으로 구분하여 출력한다.
- 각 정수는 이상 이하이며, 이다.
- 각 는 정확히 4개 칸에 배치되어야 하며, 그 4칸은 서로 다른 두 행과 서로 다른 두 열의 조합으로 이루는 직사각형의 네 꼭짓점이어야 한다.
- 여러 최적 해가 존재하면 그중 아무거나 출력해도 된다.
제한
- 과 은 짝수