포럼
문제 USACO0232

도자기 가게의 황소

설명

농부 존은 집에 장식이 좀 더 필요하다고 생각했다. 동네 도자기 가게에 들른 그는 벽난로 위 선반에 딱 어울릴 것 같은 섬세한 유리 소 장식품을 발견하고 구매하기로 한다.

소 장식품의 모양은 아래와 같은 \(N \times N\) 문자 격자로 표현된다 (\(3 \leq N \leq 8\)). '#' 문자는 장식품의 일부이고 '.' 문자는 아니다.

...............
...............
...............
#..#...........
####...........
############...
.##.#########..
....#######.##.
....##...##....
....##...##....
...............
...............
...............
...............
...............

안타깝게도 존이 계산을 하기 직전, 황소 한 마리가 가게 안을 뛰어다니며 존의 장식품뿐만 아니라 선반 위의 다른 유리 제품들까지 잔뜩 깨뜨리고 말았다! 존의 장식품은 2개의 조각으로 부서졌고, 이 조각들은 바닥에 흩어진 총 \(K\)개의 조각들 사이에 섞여 버렸다 (\(3 \leq K \leq 10\)). \(K\)개의 조각 각각은 원래 장식품과 마찬가지로 \(N \times N\) 문자 격자로 표현된다.

\(K\)개의 조각 중 어느 두 조각을 붙여야 부서진 장식품을 복원할 수 있는지 농부 존이 알아내도록 도와주자. 다행히도 장식품의 두 조각은 바닥에 떨어질 때 회전하거나 뒤집히지 않았으므로, 조각을 다시 맞추려면 조각을 가로 그리고/또는 세로로 평행 이동한 뒤 겹쳐 놓기만 하면 된다. 올바른 두 조각을 골랐다면, 이런 방식으로 원래 장식품을 정확하게 재구성할 수 있어야 하며, 원래 장식품의 각 '#'는 두 조각 중 정확히 하나에만 나타나야 한다 (즉, 두 조각을 이동시켜 겹쳤을 때 공통된 '#' 문자를 공유해서는 안 되고, 두 조각이 합쳐져서 원래 모양을 정확히 이루어야 한다).

존은 조각을 세로 그리고/또는 가로로 임의의 칸 수만큼 이동시킬 수 있지만, '#' 문자가 원래의 \(N \times N\) 격자 바깥으로 벗어날 만큼 멀리 이동시킬 수는 없다. 각 조각의 모양이 반드시 하나의 "연결된" '#' 영역으로 이루어져 있는 것은 아니다. 그렇지만 한 조각이 서로 떨어진 여러 개의 '#' 덩어리로 이루어져 있더라도, 조각 전체를 이동시키려면 덩어리들을 모두 같은 만큼 이동시켜야 한다.

문제 제공: Brian Dean

제약

문제 제공: Brian Dean

입력 형식

입력의 첫째 줄에 \(N\)\(K\)가 주어진다. 다음 \(N\)개의 줄에 농부 존의 원래 장식품을 나타내는 문자 격자가 주어진다. 그다음 \(KN\)개의 줄에 농부 존이 바닥에서 발견한 \(K\)개의 조각을 나타내는 \(K\)개의 문자 격자가 주어진다.

출력 형식

농부 존의 장식품을 이루는 두 조각의 번호를 나타내는, \(1 \ldots K\) 범위의 정수 두 개를 공백으로 구분하여 한 줄에 출력한다. 해는 항상 존재하며 유일하다. 출력하는 두 수는 오름차순이어야 한다.

Standard input / output
This problem is judged over standard input/output. The original contest used named files — if you prefer the classic interface, tick “File I/O” on the submit form and read/write these files instead:
입력을 읽을 파일 bcs.in · 출력을 쓸 파일 bcs.out
예제 1
입력
4 3
####
#..#
#.##
....
.#..
.#..
##..
....
####
##..
#..#
####
....
.###
.#..
.#..
출력
1 3
문제 정보

riseoj 작성

출처 올림피아드 > USACO > 2015-2016 > US Open > Bronze

태그

평가 및 의견

Bull in a China Shop

개요
출제자 난이도 Unrated 레이팅 미적용 의견 0 / 1 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

Bull in a China Shop

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
파일 입출력 (bcs.in / bcs.out — classic USACO interface; off = stdin/stdout)
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8