language: Pascal (fpc) (fpc 2.2.0)
date: 104 days 2 hours ago
link:
visibility: public
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
var
ar:array[1..100,1..100] of char;
ac,aa,ab:string;
al,bb:char;
s,r,k,a,b,c,i,j,m,x,y,z:longint;
aaa:boolean;
procedure f(x,y:longint;ab:string);
begin
if r-y>=k-1 then begin                    {kiri ke kanan}
        ac:=ab;
        for z:=y+1 to y+k-1 do
        ac:=ac+ar[x,z];
        end;
        if ac=aa then aaa:=true;
if s-x>=k-1 then begin                     {atas ke bawah}
        ac:=ab;
        for z:=x+1 to x+k-1 do
        ac:=ac+ar[z,y];
        end;
        if ac=aa then aaa:=true;
if x>=k then begin                       {bawah ke atas}
        ac:=ab;
        for z:=x-1 downto x-k+1 do
        ac:=ac+ar[z,y];
        end;
        if ac=aa then aaa:=true;
if y>=k then begin                         {kanan ke kiri}
        ac:=ab;
        for z:=y-1 downto y-k+1 do
        ac:=ac+ar[x,z];
end;
        if ac=aa then aaa:=true;
if (y>=k) and (s-x>=k-1) then begin  {kanan atas ke kiri bawah}
        ac:=ab;
        for z:=1 to k-1 do begin
        ac:=ac+ar[x+z,y-z];
        end;
        end;
        if ac=aa then aaa:=true;
if (y>=k) and (x>=k) then begin      {kanan bawah ke kiri atas}
        ac:=ab;
        for z:=1 to k-1 do begin
        ac:=ac+ar[x-z,y-z];
        end;
        end;
        if ac=aa then aaa:=true;
if (s-y>=k-1) and (s-x>=k-1) then begin    {kiri atas ke kanan bawah}
        ac:=ab;
        for z:=1 to k-1 do begin
        ac:=ac+ar[x+z,y+z];
        end;
        end;
        if ac=aa then aaa:=true;
  
if (s-y>=k-1) and (x>=k) then begin         {kiri bawah ke kanan atas}
        ac:=ab;
        for z:=1 to k-1 do begin
        ac:=ac+ar[x-z,y+z];
        end;
        end;
        if ac=aa then aaa:=true;
end;
  
begin
read(s,r);
readln;
for a:=1 to s do begin
        for b:=1 to r do begin
                read(ar[a,b]);
                if (b<>r) then read(al);
                end;
        readln;
end;
readln(m);
for a:=1 to m do begin
        readln(aa);
        k:=length(aa);
        bb:=aa[1];
        aaa:=false;
        for b:=1 to s do begin
                for c:=1 to r do begin
                if ar[b,c]=bb then
                 f(b,c,bb);
                        end;
                end;
        if aaa=true then
        writeln(aa,' ','Y')
        else writeln(aa,' ','T');
  
end;
readln;
end.