나만의 농장 운영하기: 심고 수확하기

NYPC 2016 · 본선

여러분에게 직사각형 모양의 땅이 주어진다. 땅에 미리 만들어져 있는 밭과 일꾼의 위치가 지도의 형태로 입력된다. 이 땅에 밭을 만들고 밭에 작물을 심어 수확하면서 농장을 운영해나가야 한다.

목표

이 문제는 1단계에 해당하는 문제이다.

1단계의 목표는 기본 조작에 익숙해지기 위해 밭을 하나 이상 만들고 berry 작물을 총 세 번 수확하는 것이다.

구성

지도에는 다음의 것들이 표시되어있다:

일꾼에 명령을 내려 밭을 만들거나 작물을 심고 수확할 수 있다. 명령을 수행하거나 작물이 성장하는 데는 시간이 필요하고, 이 게임에서 시간의 단위는 턴으로 표시된다. 입력이 주어진 시점에서 00턴으로 시작된다. 작물을 심거나 수확하는 데는 11턴이 소요되고 그 외의 경우는 입력으로 주어진다. 일꾼의 시작 위치는 입력으로 주어진다.

1단계 문제에서 일꾼이 할 수 있는 행동은 다음과 같다.

일꾼에게 명령을 내리는 방법은 출력 양식을 참고하라. 명령을 수행하는 중에는 다른 명령을 수행할 수 없다. 수행할 수 없는 명령을 내리거나 잘못된 명령을 내리는 경우 오답으로 처리된다.

입력

첫 줄에는 초기 자금 MM이 주어진다. 1단계 문제에선 밭 11개를 만들고 berry 33개를 심기에 충분한 금액이 주어진다.

다음 줄에 밭을 만드는데 소요되는 턴과 비용이 주어진다.

그 다음 줄에 일꾼의 시작 가로 위치 XX, 세로 위치 YY가 주어진다. 좌표는 지도의 왼쪽 제일 위 칸이 (1,1)(1, 1)에 해당한다.

그 다음 줄에는 지도의 가로 크기 WW와 세로 크기 HH가 주어지고 다음 HH줄에 거쳐 지도가 주어진다. (1W1001 \le W \le 100, 1H1001 \le H \le 100)

그 다음 줄에 심을 수 있는 작물의 종류 개수 NN이 주어진다. (N20N \le 20) 이어서 각 작물에 대한 입력이 NN줄 들어온다.

작물별로 이름, 수확할 수 있을 때까지 걸리는 턴, 심을 때 필요한 비용, 수확할 때 얻을 수 있는 금액이 주어진다. 작물의 이름은 띄어쓰기 없이 영어 소문자로만 이루어져 있고, 20자를 넘지않는다.

자금을 저장할 때 00 이상 1010억 이하의 정수를 저장할 수 있는 자료형을 사용하면 문제를 해결하는데 충분할 것이다.

밭 하나를 만들 수 있는 공간은 입력에 반드시 존재하며, 초기에 밭이 몇개있던 상관없이 밭 하나는 반드시 만들어야 한다.

출력

일꾼에게 특정 턴에 어떤 명령을 내릴지 턴 명령 명령인자의 형태로 한 줄에 하나씩 출력한다. 턴은 반드시 증가하는 순서로 출력하여야 한다.

출력된 명령을 수행하면 하나 이상의 밭을 만들고 berry 작물을 심어 총 세 번 수확하도록 해야 한다.

수행할 수 없는 명령을 내리거나 잘못된 명령을 내리는 경우 오답으로 처리된다.

예제

입력

100 5 50 5 3 6 5 ...... .##... ...... ...... ...... 2 berry 10 5 10 watermelon 50 200 273

출력

0 move 4 2 2 plow 7 plant berry 8 move 3 2 9 plant berry 10 move 2 2 11 plant berry 12 move 4 2 18 harvest 19 move 3 2 20 harvest 21 move 2 2 22 harvest

처음에 100100원을 가지고 시작한다.

새 밭을 만들려면 55턴, 5050원이 필요하다.

일꾼은 (5,3)(5, 3) 위치에서 시작한다.

지도의 크기는 가로 66, 세로 55 이다. 밭 22개가 미리 만들어져 있는 지도가 주어졌다.

심을 수 있는 작물 22개가 주어진다:

두 칸 이동하여 새 밭을 만든 후 오른쪽에서부터 하나씩 berry를 심고 다시 맨 오른쪽 밭으로 이동한다. 77턴에 심었으므로 심는데 11턴, 익는데 1010턴이 걸려 1818턴에 수확이 가능하다. berry가 다 익을 때를 기다린 후 한 칸씩 이동하며 수확한다. 처음에 밭이 두 개 있었으므로 밭 하나를 추가한 다음에는 33개를 동시에 기를 수 있다.

채점 규칙

모든 숨겨진 입력 데이터에 대해 정답이면 만점을 주고, 하나라도 틀리면 점수를 주지 않는다.