흑백 패널

아직 제출이 없습니다시간 제한2초메모리 제한256 MB

문제

같은 크기의 검은 타일과 흰 타일을 붙여 직사각형 패널을 만든다. 완성한 패널에는 검은 타일로 이루어진 4방향 연결 영역이 정확히 bb개, 흰 타일로 이루어진 4방향 연결 영역이 정확히 ww개 있어야 한다.

어떤 색의 4방향 연결 영역은 다음 두 조건을 만족하는 타일의 극대 집합이다.

  • 집합에 속한 타일은 색이 모두 같다.
  • 집합에서 두 타일을 아무렇게나 고르면, 두 타일을 잇는 집합 안의 타일 열이 있고 그 열에서 이웃한 두 타일은 변을 공유한다.

조건을 만족하는 패널은 여러 가지이므로, 아래 출력 규칙이 정하는 패널 하나만 정답으로 인정한다.

입력

첫째 줄에 검은 영역의 개수 bb와 흰 영역의 개수 ww가 주어진다. (1b,w10001 \le b, w \le 1000)

출력

첫째 줄에 패널의 행 수 rr과 열 수 cc를 출력하고, 이어서 cc개의 문자로 이루어진 줄을 rr개 출력한다. 검은 타일은 @, 흰 타일은 .으로 나타낸다.

정답 패널은 다음 규칙으로 정해진다. 행과 열은 1부터 센다.

  • p=w1p = w - 1, q=b1q = b - 1로 둔다.
  • 열 수는 항상 c=101c = 101이다.
  • 위쪽 검은 블록의 높이는 h1=2p/50+1h_1 = 2\lceil p/50 \rceil + 1, 아래쪽 흰 블록의 높이는 h2=2q/50+1h_2 = 2\lceil q/50 \rceil + 1이고, r=h1+h2r = h_1 + h_2이다.
  • 위쪽 블록은 11행부터 h1h_1행까지이고 처음에는 전부 @이다. i=1,2,,pi = 1, 2, \dots, p에 대해 2i/502\lceil i/50 \rceil2(((i1)mod50)+1)2(((i-1) \bmod 50) + 1)열의 타일을 .으로 바꾼다.
  • 아래쪽 블록은 h1+1h_1 + 1행부터 rr행까지이고 처음에는 전부 .이다. j=1,2,,qj = 1, 2, \dots, q에 대해 h1+2j/50h_1 + 2\lceil j/50 \rceil2(((j1)mod50)+1)2(((j-1) \bmod 50) + 1)열의 타일을 @로 바꾼다.