60033 두 정삼각형 Silver III

시간 제한: 2초 메모리 제한: 1024MB

문제

첫 번째 줄에는 11개의 수를, 두 번째 줄에는 22개의 수를, \dots, NN번째 줄에는 NN개의 수를 아래 그림과 같이 배치한 정삼각형 AA, BB가 주어진다. 각 위치에 있는 수는 00 또는 11이다.

당신은 정삼각형을 시계방향 또는 반시계 방향으로 120120^◦ 회전시키거나 좌우로 대칭시킬 수 있다.

예를 들어, 위 그림의 정삼각형 AA를 회전시켜서 얻을 수 있는 정삼각형들은 다음과 같다.

AA를 대칭시켜서 얻을 수 있는 정삼각형은 다음과 같다.

두 정삼각형의 차이는 두 정삼각형을 겹쳤을 때 값이 다른 위치의 개수이다.

예를 들어, 정삼각형 AABB를 겹쳐보면, 두 번째 줄에서 가장 왼쪽, 세 번째 줄에서 가장 왼쪽과 오른쪽에 있는 수들이 다르므로, AABB의 차이는 33이 된다.

반면에, AA를 반시계 방향으로 120120^◦ 회전시킨 삼각형(두 번째 그림에서 오른쪽 삼각형)과 BB를 겹쳐보면 세 번째 줄에서 왼쪽에서 두 번째에 있는 수들만 다르므로, 이때 정삼각형의 차이는 11이 된다.

정삼각형 AABB가 주어진다. 당신은 AA를 원하는 만큼 회전시키고 대칭시킬 수 있다. 물론 AA를 회전시키거나 대칭시키지 않아도 된다. 또한, 회전시키거나 대칭시킬 수 있는 횟수에는 제한이 없다.

위와 같이 AA를 회전시키거나 대칭시켜 BB와 차이가 최소로 나게 하자. 이때 차이가 얼마인지 구하시오.

입력

첫 번째 줄에 AA, BB의 크기 NN이 주어진다.

두 번째 줄부터 N+1N + 1번째 줄까지, AA의 각 위치에 있는 수들이 주어진다.

i+1i + 1 (1iN1 ≤ i ≤ N)번째 줄에는 AAii번째 줄에 있는 ii개의 정수가 왼쪽부터 공백을 사이에 두고 순서대로 주어진다.

N+2N + 2번째 줄부터 2N+12N + 1번째 줄까지, BB의 각 위치에 있는 수들이 주어진다.

i+N+1i + N + 1 (1iN1 ≤ i ≤ N)번째 줄에는 BBii번째 줄에 있는 ii개의 정수가 왼쪽부터 공백을 사이에 두고 순서대로 주어진다.

출력

첫 번째 줄에 AA를 원하는 만큼 회전, 대칭시켜서 얻을 수 있는 BB와의 차이의 최솟값을 출력한다.

제한

  • 주어지는 모든 수는 정수이다.
  • 1N101 ≤ N ≤ 10
  • AA, BB의 각 위치에 있는 수는 00또는 11이다.

서브태스크

번호배점제한
15AA에 배치되어 있는 모든 수들이 같다. 다시 말해 AA에는 모두 00이 쓰여 있거나, 모두 11이 쓰여 있다.
210N2N ≤ 2
340AA를 회전시킨 경우만 고려해도 정답을 찾을 수 있다.
445추가 제한 없음.

예제 입출력

예제 입력 1
3
0
1 0
1 0 0
0
0 0
0 0 1
예제 출력 1
1
예제 입력 2
4
0
1 1
1 0 0
1 0 0 0
0
0 0
0 0 1
1 1 1 0
예제 출력 2
0
예제 입력 3
4
0
1 0
0 0 1
1 1 0 0
0
0 1
0 0 0
0 1 1 1
예제 출력 3
2

출처

올림피아드 한국정보올림피아드 KOI 2023 1차 중등부 1번
solution.cpp
에디터 불러오는 중...