| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 6 초 | 1024 MB | 59 | 15 | 15 | 38.462% |
You're probably familiar with regular word searches, where you're presented with a grid of letters and a word to find. The word can be in a straight line horizontally, vertically, or diagonally (and perhaps backwards in any of those directions). For example, here is a grid of letters:
Figure 1: A word search grid
The word "JAVA" can be found going from the bottom right corner diagonally upwards.
In a kinky word search the path that spells out the word can have one or more "kinks" -- places where the path changes direction. For example, in the given grid you can spell the word "PYTHON" with 3ドル$ kinks (one each at the T, H and O):
Figure 2: A kinky spelling of "PYTHON"
Adding kinks allows letters to be reused -- the word "CPLUSPLUS" can be found in the upper right corner of the grid (with 5ドル$ kinks). However you cannot stay on a letter twice in a row, so you cannot spell the word "HASKELL" in this grid (though you can find at least 11ドル$ more common programming languages). Your task is to see if the spelling of a word with a certain number of kinks is possible or not.
Input begins with a line containing two positive integers $r$ and $c$ ($r, c \leq 10),ドル the number of rows and columns in the grid. After this are $r$ rows of $c$ uppercase characters. Letters are separated by a space. After the grid are two lines: The first line is an integer $k,ドル the number of kinks. The second line contains an uppercase word to look for, with maximum length 100ドル$.
Output either the word YES if it is possible to spell the given word with exactly $k$ kinks on the grid provided, or NO if it is not.
5 5 L M E L C C A K U P D O V S Y R N L A T P G O H J 0 JAVA
YES
5 5 L M E L C C A K U P D O V S Y R N L A T P G O H J 3 PYTHON
YES
5 5 L M E L C C A K U P D O V S Y R N L A T P G O H J 4 PYTHON
NO
ICPC > Regionals > North America > East Central North America Regional > 2020 East Central Regional Contest B번