아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

테스트케이스 만들기

시간 제한1초메모리 제한512 MB

요약
나머지 K와 법 P가 주어질 때, 왼쪽 위에서 오른쪽 아래로 가는 단조 경로 수가 P로 나눈 나머지가 K가 되는 격자판을 N+M이 100 이하가 되도록 만들거나, 불가능하면 -1을 출력한다.
난이도

보통10점 중 7점

유형
조합론, 수학, 동적 계획법, 구현
정답자
아직 제출이 없습니다

문제

승주는 대회에 쓰일 대회 문제를 만들었다. 문제는 아래와 같다.

- N×MN \times M 격자판이 주어진다.

- 각 칸은 블럭 ('#') 이거나 빈 공간 ('.') 이다.

- 오른쪽 또는 아래 쪽으로만 갈 수 있다. 블럭이 있는 곳은 지나갈 수 없다.

- 왼쪽 상단에서 출발하여 오른쪽 하단으로 가는 방법의 수를 PP 로 나눈 나머지 KK를 구하여라. (왼쪽 상단 또는 오른쪽 하단이 블럭으로 되어 있는 경우 방법의 수는 0이다.)

예를 들면

3 5 5 (N, M, P)
.....
..#..
.....

의 방법의 수는 6이므로 답은 K=1K=1 이 된다.

현태는 장난을 좋아해서 입력 파일의 격자판을 지워버렸다. 그래서 KK 랑 PP 밖에 모른다.

KK, PP 가 주어지면 조건을 만족하는 격자판을 만들어보자.

입력

첫 번째 줄에 K,P;(0≤K<P)K, P \\; (0 \leq K < P) 가 주어진다.

출력

문제의 조건을 만족하는 테스트케이스가 없다면 첫 번째 줄에 −1-1 만 출력한다.

테스트케이스가 있다면 첫 번째 줄에 NN, MM 을 출력한다. 단, 파일이 너무 크면 안되므로 (1≤N,M,N+M≤1001 \leq N, M, N+M \leq 100 ) 을 만족해야 한다.

두 번째 줄부터 NN 개의 줄에 격자판을 나타내는 문자열을 출력한다.

예제1

  1. 예제 1

    입력
    1 5
    
    예상 출력
    3 5
    .....
    ..#..
    .....