#include<stdio.h>
int testcount;
char arr[7][7];
int cache[105][105];
int cache2[105][105];
//int n;
char word[20];
int main(void){
//freopen("c:\\input.txt", "r", stdin);
scanf("%d", &testcount);
gets(word);
while (testcount--){
int c;
//scanf("%d", &n);
for (int i = 1; i < 6; i++){
for (int j = 1; j < 6; j++){
scanf("%c", &arr[i][j]);
}
gets(word);
}
scanf("%d", &c);
while (c--){
char test[11];
int result = 1;
gets(word);
for (int i = 0; i < 7; i++){
for (int j = 0; j < 7; j++){
cache[i][j] = -1;
cache2[i][j] = -1;
}
}
scanf("%s", test);
//printf("%s", arr);
for (int o = 0; test[o] != '\0'; o++){
//printf("%c", arr[o]);
int stt = 0;
if (o % 2 == 0){
for (int i = 1; i < 6; i++){
for (int j = 1; j < 6; j++){
if (test[o] == arr[i][j]){
if (cache[i - 1][j - 1] == o - 1 || cache[i - 1][j] == o - 1 || cache[i - 1][j + 1] == o - 1 || cache[i][j - 1] == o - 1 ||
cache[i][j + 1] == o - 1 || cache[i + 1][j - 1] == o - 1 || cache[i + 1][j] == o - 1 || cache[i + 1][j + 1] == o - 1)
{
cache2[i][j] = o;
stt = 1;
}
}
}
}
}
else{
for (int i = 1; i < 6; i++){
for (int j = 1; j < 6; j++){
if (test[o] == arr[i][j]){
if (cache2[i - 1][j - 1] == o - 1 || cache2[i - 1][j] == o - 1 || cache2[i - 1][j + 1] == o - 1 || cache2[i][j - 1] == o - 1 ||
cache2[i][j + 1] == o - 1 || cache2[i + 1][j - 1] == o - 1 || cache2[i + 1][j] == o - 1 || cache2[i + 1][j + 1] == o - 1)
{
cache[i][j] = o;
stt = 1;
}
}
}
}
}
if (stt != 1){ result = 0; break; }
}
printf("%s ", test);
if (result == 1) { printf("YES\n"); }
else { printf("NO\n"); }
}
}
}
안녕하세요.
제가 문의드릴 내용은 제가 만들수 있는 모든 TESTCASE는 다 통과하는데 오답이라고 나와서 문의드립니다.
원래 오답이라고 나오면 자신이 TESTCASE를 만들어서 해결해야하지만 도저히 모르겠습니다. 어떤 테스트 케이스에서 통과를 못했는지 던져주시면 해결하겠습니다.
NNNNN
NEEEN
NEYEN
NEEEN
NSNNN
1
YES
위 테스트케이스도 통과합니다.
감사합니다.
bum4985
안녕하세요.
제가 문의드릴 내용은 제가 만들수 있는 모든 TESTCASE는 다 통과하는데 오답이라고 나와서 문의드립니다.
원래 오답이라고 나오면 자신이 TESTCASE를 만들어서 해결해야하지만 도저히 모르겠습니다. 어떤 테스트 케이스에서 통과를 못했는지 던져주시면 해결하겠습니다.
NNNNN
NEEEN
NEYEN
NEEEN
NSNNN
1
YES
위 테스트케이스도 통과합니다.
감사합니다.
11년 전