시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 128 MB27881615145260.299%

문제

유명한 마술사인 이민혁이 사용하는 카드의 뒷 면은 모두 자신이 디자인한 카드이다.

민혁이는 카드 뒷 면 전체를 디자인하지 않고, 왼쪽 위 1/4만 디자인한다. 그 다음 대칭시켜 오른쪽 위를 만들고, 다시 대칭시켜서 아래 부분을 모두 만든다.

이렇게 대칭시켜서 전체를 디자인 한 이후에는, 마술하는데 사용하기 위한 의도된 에러를 넣는다. 에러는 원래 '#'이어야 하는 칸을 '.'로 바꾸거나 '.'이어야 하는 칸을 '#'로 바꾸는 것이다.

왼쪽 위의 디자인과 에러의 위치가 주어졌을 때, 카드 뒷 면 전체 디자인을 구하는 프로그램을 작성하시오.

아래 그림은 민혁이의 카드의 예시이다. (회색 칸은 에러이다)

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

입력

첫째 줄에 왼쪽 위 부분의 행의 개수 R과 열의 개수 C가 주어진다. (1 ≤ R, C ≤ 50)

다음 R개 줄에는 C개의 문자 '.' 또는 '#'가 주어진다.

마지막 줄에는 에러의 위치 A와 B가 주어진다. (1 ≤ A ≤ 2R, 1 ≤ B ≤ 2C)

출력

카드 뒷 면 전체 디자인을 총 2R개 줄에 걸쳐서 출력한다. 각 줄은 2C개의 문자로 이루어져 있어야 한다.

예제 입력 1

2 2
#.
.#
3 3

예제 출력 1

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

예제 입력 2

3 3
###
###
###
1 4

예제 출력 2

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

예제 입력 3

5 4
#.#.
#.##
#.##
....
.#.#
10 5

예제 출력 3

#.#..#.#
#.####.#
#.####.#
........
.#.##.#.
.#.##.#.
........
#.####.#
#.####.#
#.#.##.#
W3sicHJvYmxlbV9pZCI6IjMwMjMiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWI5YzhcdWMyMjBcdWMwYWMgXHVjNzc0XHViYmZjXHVkNjAxIiwiZGVzY3JpcHRpb24iOiI8cD5cdWM3MjBcdWJhODVcdWQ1NWMgXHViOWM4XHVjMjIwXHVjMGFjXHVjNzc4IFx1Yzc3NFx1YmJmY1x1ZDYwMVx1Yzc3NCBcdWMwYWNcdWM2YTlcdWQ1NThcdWIyOTQgXHVjZTc0XHViNGRjXHVjNzU4IFx1YjRiNyBcdWJhNzRcdWM3NDAgXHViYWE4XHViNDUwIFx1Yzc5MFx1YzJlMFx1Yzc3NCBcdWI1MTRcdWM3OTBcdWM3NzhcdWQ1NWMgXHVjZTc0XHViNGRjXHVjNzc0XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWJiZmNcdWQ2MDFcdWM3NzRcdWIyOTQgXHVjZTc0XHViNGRjIFx1YjRiNyBcdWJhNzQgXHVjODA0XHVjY2I0XHViOTdjIFx1YjUxNFx1Yzc5MFx1Yzc3OFx1ZDU1OFx1YzljMCBcdWM1NGFcdWFjZTAsIFx1YzY3Y1x1Y2FiZCBcdWM3MDQgMVwvNFx1YjljYyBcdWI1MTRcdWM3OTBcdWM3NzhcdWQ1NWNcdWIyZTQuIFx1YWRmOCBcdWIyZTRcdWM3NGMgXHViMzAwXHVjZTZkXHVjMmRjXHVjZjFjIFx1YzYyNFx1Yjk3OFx1Y2FiZCBcdWM3MDRcdWI5N2MgXHViOWNjXHViNGU0XHVhY2UwLCBcdWIyZTRcdWMyZGMgXHViMzAwXHVjZTZkXHVjMmRjXHVjZjFjXHVjMTFjIFx1YzU0NFx1Yjc5OCBcdWJkODBcdWJkODRcdWM3NDQgXHViYWE4XHViNDUwIFx1YjljY1x1YjRlMFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjNzc0XHViODA3XHVhYzhjIFx1YjMwMFx1Y2U2ZFx1YzJkY1x1Y2YxY1x1YzExYyBcdWM4MDRcdWNjYjRcdWI5N2MgXHViNTE0XHVjNzkwXHVjNzc4IFx1ZDU1YyBcdWM3NzRcdWQ2YzRcdWM1ZDBcdWIyOTQsIFx1YjljOFx1YzIyMFx1ZDU1OFx1YjI5NFx1YjM3MCBcdWMwYWNcdWM2YTlcdWQ1NThcdWFlMzAgXHVjNzA0XHVkNTVjIFx1Yzc1OFx1YjNjNFx1YjQxYyBcdWM1ZDBcdWI3ZWNcdWI5N2MgXHViMTIzXHViMjk0XHViMmU0LiBcdWM1ZDBcdWI3ZWNcdWIyOTQgXHVjNmQwXHViNzk4ICYjMzk7IyYjMzk7XHVjNzc0XHVjNWI0XHVjNTdjIFx1ZDU1OFx1YjI5NCBcdWNlNzhcdWM3NDQgJiMzOTsuJiMzOTtcdWI4NWMgXHViYzE0XHVhZmI4XHVhYzcwXHViMDk4ICYjMzk7LiYjMzk7XHVjNzc0XHVjNWI0XHVjNTdjIFx1ZDU1OFx1YjI5NCBcdWNlNzhcdWM3NDQgJiMzOTsjJiMzOTtcdWI4NWMgXHViYzE0XHVhZmI4XHViMjk0IFx1YWM4M1x1Yzc3NFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjNjdjXHVjYWJkIFx1YzcwNFx1Yzc1OCBcdWI1MTRcdWM3OTBcdWM3NzhcdWFjZmMgXHVjNWQwXHViN2VjXHVjNzU4IFx1YzcwNFx1Y2U1OFx1YWMwMCBcdWM4ZmNcdWM1YjRcdWM4NGNcdWM3NDQgXHViNTRjLCBcdWNlNzRcdWI0ZGMgXHViNGI3IFx1YmE3NCBcdWM4MDRcdWNjYjQgXHViNTE0XHVjNzkwXHVjNzc4XHVjNzQ0IFx1YWQ2Y1x1ZDU1OFx1YjI5NCBcdWQ1MDRcdWI4NWNcdWFkZjhcdWI3YThcdWM3NDQgXHVjNzkxXHVjMTMxXHVkNTU4XHVjMmRjXHVjNjI0LjxcL3A+XHJcblxyXG48cD5cdWM1NDRcdWI3OTggXHVhZGY4XHViOWJjXHVjNzQwIFx1YmJmY1x1ZDYwMVx1Yzc3NFx1Yzc1OCBcdWNlNzRcdWI0ZGNcdWM3NTggXHVjNjA4XHVjMmRjXHVjNzc0XHViMmU0LiAoXHVkNjhjXHVjMGM5IFx1Y2U3OFx1Yzc0MCBcdWM1ZDBcdWI3ZWNcdWM3NzRcdWIyZTQpPFwvcD5cclxuXHJcbjx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLWJvcmRlcmVkIHRkLWNlbnRlclwiPlxyXG5cdDx0Ym9keT5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPjxjb2RlPiMjIy4jIy4jIyM8YnIgXC8+XHJcblx0XHRcdCMjIyMjIyMjIyM8YnIgXC8+XHJcblx0XHRcdC4jIyMjIyMjIy48YnIgXC8+XHJcblx0XHRcdC4uIyMjIyMjLi48YnIgXC8+XHJcblx0XHRcdCMjIyM8c3BhbiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2JkYzNjNztcIj4uPFwvc3Bhbj4jIyMjIzxiciBcLz5cclxuXHRcdFx0IyMjIyMjIyMjIzxiciBcLz5cclxuXHRcdFx0Li4jIyMjIyMuLjxiciBcLz5cclxuXHRcdFx0LiMjIyMjIyMjLjxiciBcLz5cclxuXHRcdFx0IyMjIyMjIyMjIzxiciBcLz5cclxuXHRcdFx0IyMjLiMjLiMjIzxcL2NvZGU+PFwvdGQ+XHJcblx0XHRcdDx0ZD48Y29kZT4jLiMuLiMuIzxiciBcLz5cclxuXHRcdFx0Iy4jIyMjLiM8YnIgXC8+XHJcblx0XHRcdCMuIyMjIy4jPGJyIFwvPlxyXG5cdFx0XHQuLi4uLi4uLjxiciBcLz5cclxuXHRcdFx0LiMuIyMuIy48YnIgXC8+XHJcblx0XHRcdC4jLiMjLiMuPGJyIFwvPlxyXG5cdFx0XHQuLi4uLi4uLjxiciBcLz5cclxuXHRcdFx0Iy4jIyMjLiM8YnIgXC8+XHJcblx0XHRcdCMuIyMjIy4jPGJyIFwvPlxyXG5cdFx0XHQjLiMuPHNwYW4gc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNiZGMzYzc7XCI+IzxcL3NwYW4+Iy4jPFwvY29kZT48XC90ZD5cclxuXHRcdFx0PHRkPjxjb2RlPjxzcGFuIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojYmRjM2M3O1wiPi48XC9zcGFuPiMuIyMuIyM8YnIgXC8+XHJcblx0XHRcdCMuIy4uIy4jPGJyIFwvPlxyXG5cdFx0XHQuLi4uLi4uLjxiciBcLz5cclxuXHRcdFx0Li4jLi4jLi48YnIgXC8+XHJcblx0XHRcdC4uIy4uIy4uPGJyIFwvPlxyXG5cdFx0XHQuLi4uLi4uLjxiciBcLz5cclxuXHRcdFx0Iy4jLi4jLiM8YnIgXC8+XHJcblx0XHRcdCMjLiMjLiMjPFwvY29kZT48XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdDxcL3Rib2R5PlxyXG48XC90YWJsZT5cclxuIiwiaW5wdXQiOiI8cD5cdWNjYWJcdWM5ZjggXHVjOTA0XHVjNWQwIFx1YzY3Y1x1Y2FiZCBcdWM3MDQgXHViZDgwXHViZDg0XHVjNzU4IFx1ZDU4OVx1Yzc1OCBcdWFjMWNcdWMyMTggUlx1YWNmYyBcdWM1ZjRcdWM3NTggXHVhYzFjXHVjMjE4IENcdWFjMDAgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiAoMSAmbGU7IFIsIEMgJmxlOyA1MCk8XC9wPlxyXG5cclxuPHA+XHViMmU0XHVjNzRjIFJcdWFjMWMgXHVjOTA0XHVjNWQwXHViMjk0IENcdWFjMWNcdWM3NTggXHViYjM4XHVjNzkwICYjMzk7LiYjMzk7IFx1YjYxMFx1YjI5NCAmIzM5OyMmIzM5O1x1YWMwMCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuPFwvcD5cclxuXHJcbjxwPlx1YjljOFx1YzljMFx1YjljOSBcdWM5MDRcdWM1ZDBcdWIyOTQgXHVjNWQwXHViN2VjXHVjNzU4IFx1YzcwNFx1Y2U1OCBBXHVjNjQwIEJcdWFjMDAgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiAoMSAmbGU7IEEgJmxlOyAyUiwgMSAmbGU7IEIgJmxlOyAyQyk8XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5cdWNlNzRcdWI0ZGMgXHViNGI3IFx1YmE3NCBcdWM4MDRcdWNjYjQgXHViNTE0XHVjNzkwXHVjNzc4XHVjNzQ0IFx1Y2QxZCAyUlx1YWMxYyBcdWM5MDRcdWM1ZDAgXHVhYzc4XHVjY2QwXHVjMTFjIFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC4gXHVhYzAxIFx1YzkwNFx1Yzc0MCAyQ1x1YWMxY1x1Yzc1OCBcdWJiMzhcdWM3OTBcdWI4NWMgXHVjNzc0XHViOGU4XHVjNWI0XHVjODM4IFx1Yzc4OFx1YzViNFx1YzU3YyBcdWQ1NWNcdWIyZTQuPFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMCIsImh0bWxfdGl0bGUiOiIwIiwicHJvYmxlbV9sYW5nX3Rjb2RlIjoiS29yZWFuIn0seyJwcm9ibGVtX2lkIjoiMzAyMyIsInByb2JsZW1fbGFuZyI6IjEiLCJ0aXRsZSI6Ik1BR0lKQSIsImRlc2NyaXB0aW9uIjoiPHA+VGhlIHdlbGwta25vd24gbWFnaWNpYW4gQWwmIzM5O0RpbWkgS2FydGltaSBuZWVkcyBhIHByb2dyYW0gdG8gaGVscCBoaW0gZGVzaWduIHRoZSBiYWNrIHNpZGUgb2YgaGlzIGNhcmRzLiZuYnNwOzxcL3A+XHJcblxyXG48cD5BbCYjMzk7RGltaSBmaXJzdCBkcmF3cyB0aGUgdXBwZXIgbGVmdCBxdWFydGVyIG9mIHRoZSBjYXJkLCBtaXJyb3JzIGl0IGhvcml6b250YWxseSBvbnRvIHRoZSB1cHBlciByaWdodCBxdWFydGVyIGFuZCB0aGVuIHZlcnRpY2FsbHkgbWlycm9ycyB0aGUgZW50aXJlIHVwcGVyIGhhbGYgb250byB0aGUgbG93ZXIgaGFsZi4mbmJzcDs8XC9wPlxyXG5cclxuPHA+QWZ0ZXIgdGhlIG1pcnJvcmluZywgQWwmIzM5O0RpbWkgYWxzbyBhZGRzIGEgc21hbGwgZXJyb3IgKGNoYW5nZXMgdGhlIGFwcGVhcmFuY2Ugb2Ygb25lIHNxdWFyZSkgdG8gaGVscCBoaW0gZGV0ZXJtaW5lIHdoaWNoIGNhcmQgaXQgaXMgKHRvIGNoZWF0LCBpZiB5b3Ugd2lsbCkuPFwvcD5cclxuXHJcbjxwPkhlbHAgQWwmIzM5O0RpbWkgYnkgd3JpdGluZyBhIHByb2dyYW0gdGhhdCwgZ2l2ZW4gdGhlIGRlc2lnbiBvZiB0aGUgdXBwZXIgbGVmdCBxdWFydGVyIGFuZCB0aGUgbG9jYXRpb24gb2YgdGhlIGVycm9yLCBkcmF3cyB0aGUgZW50aXJlIGJhY2sgc2lkZS4mbmJzcDs8XC9wPlxyXG5cclxuPHA+SGVyZSBhcmUgdGhyZWUgZXhhbXBsZXMgb2YgQWwmIzM5O0RpbWkmIzM5O3MgY2FyZHMgKHRoZSBlcnJvciBpcyBzaGFkZWQgZ3JheSk6Jm5ic3A7PFwvcD5cclxuXHJcbjx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLWJvcmRlcmVkIHRkLWNlbnRlclwiPlxyXG5cdDx0Ym9keT5cclxuXHRcdDx0cj5cclxuXHRcdFx0PHRkPjxjb2RlPiMjIy4jIy4jIyM8YnIgXC8+XHJcblx0XHRcdCMjIyMjIyMjIyM8YnIgXC8+XHJcblx0XHRcdC4jIyMjIyMjIy48YnIgXC8+XHJcblx0XHRcdC4uIyMjIyMjLi48YnIgXC8+XHJcblx0XHRcdCMjIyM8c3BhbiBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6I2JkYzNjNztcIj4uPFwvc3Bhbj4jIyMjIzxiciBcLz5cclxuXHRcdFx0IyMjIyMjIyMjIzxiciBcLz5cclxuXHRcdFx0Li4jIyMjIyMuLjxiciBcLz5cclxuXHRcdFx0LiMjIyMjIyMjLjxiciBcLz5cclxuXHRcdFx0IyMjIyMjIyMjIzxiciBcLz5cclxuXHRcdFx0IyMjLiMjLiMjIzxcL2NvZGU+PFwvdGQ+XHJcblx0XHRcdDx0ZD48Y29kZT4jLiMuLiMuIzxiciBcLz5cclxuXHRcdFx0Iy4jIyMjLiM8YnIgXC8+XHJcblx0XHRcdCMuIyMjIy4jPGJyIFwvPlxyXG5cdFx0XHQuLi4uLi4uLjxiciBcLz5cclxuXHRcdFx0LiMuIyMuIy48YnIgXC8+XHJcblx0XHRcdC4jLiMjLiMuPGJyIFwvPlxyXG5cdFx0XHQuLi4uLi4uLjxiciBcLz5cclxuXHRcdFx0Iy4jIyMjLiM8YnIgXC8+XHJcblx0XHRcdCMuIyMjIy4jPGJyIFwvPlxyXG5cdFx0XHQjLiMuPHNwYW4gc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiNiZGMzYzc7XCI+IzxcL3NwYW4+Iy4jPFwvY29kZT48XC90ZD5cclxuXHRcdFx0PHRkPjxjb2RlPjxzcGFuIHN0eWxlPVwiYmFja2dyb3VuZC1jb2xvcjojYmRjM2M3O1wiPi48XC9zcGFuPiMuIyMuIyM8YnIgXC8+XHJcblx0XHRcdCMuIy4uIy4jPGJyIFwvPlxyXG5cdFx0XHQuLi4uLi4uLjxiciBcLz5cclxuXHRcdFx0Li4jLi4jLi48YnIgXC8+XHJcblx0XHRcdC4uIy4uIy4uPGJyIFwvPlxyXG5cdFx0XHQuLi4uLi4uLjxiciBcLz5cclxuXHRcdFx0Iy4jLi4jLiM8YnIgXC8+XHJcblx0XHRcdCMjLiMjLiMjPFwvY29kZT48XC90ZD5cclxuXHRcdDxcL3RyPlxyXG5cdDxcL3Rib2R5PlxyXG48XC90YWJsZT5cclxuIiwiaW5wdXQiOiI8cD5UaGUgZmlyc3QgbGluZSBvZiBpbnB1dCBjb250YWlucyB0d28gaW50ZWdlcnMsIFIgYW5kIEMgKDEgJmxlOyBSLCBDICZsZTsgNTApLCB0aGUgbnVtYmVyIG9mIHJvd3MgYW5kIGNvbHVtbnMgaW4gdGhlIHVwcGVyIGxlZnQgcXVhcnRlciBvZiB0aGUgY2FyZC4mbmJzcDs8XC9wPlxyXG5cclxuPHA+RWFjaCBvZiB0aGUgUiBmb2xsb3dpbmcgbGluZXMgY29udGFpbnMgQyBjaGFyYWN0ZXJzICYjMzk7LiYjMzk7IG9yICYjMzk7IyYjMzk7LCB0aGUgZGVzaWduIG9mIHRoZSB1cHBlciBsZWZ0IHF1YXJ0ZXIuJm5ic3A7PFwvcD5cclxuXHJcbjxwPlRoZSBuZXh0IGxpbmUgY29udGFpbnMgdHdvIGludGVnZXJzLCBBIGFuZCBCICgxICZsZTsgQSAmbGU7IDJSLCAxICZsZTsgQiAmbGU7IDJDKSwgdGhlIHJvdyBhbmQgY29sdW1uIG9mIHRoZSBlcnJvci4mbmJzcDs8XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5PdXRwdXQgMlIgcm93cywgZWFjaCBjb250YWluaW5nIDJDIGNoYXJhY3RlcnMsIHRoZSBkZXNpZ24gb2YgdGhlIGJhY2sgc2lkZS48XC9wPlxyXG4iLCJoaW50IjoiIiwib3JpZ2luYWwiOiIxIiwiaHRtbF90aXRsZSI6IjAiLCJwcm9ibGVtX2xhbmdfdGNvZGUiOiJFbmdsaXNoIn1d

출처

Contest > Croatian Open Competition in Informatics > COCI 2006/2007 > Contest #6 2번