program antivirus;
var
M, N1, N2, N3, N4, T, p1, p2, p3, p4, test, i : LongInt;
F1, F2, F3, F4 : AnsiString;
corrispondenza : boolean;
begin
{
decommenta le due righe seguenti se vuoi leggere/scrivere da file
assign(input, 'input.txt'); reset(input);
assign(output, 'output.txt'); rewrite(output);
}
ReadLn(T);
for test:=1 to T do begin
ReadLn();
ReadLn(N1, N2, N3, N4);
ReadLn(M);
ReadLn(F1);
ReadLn(F2);
ReadLn(F3);
ReadLn(F4);
writeln(F1[5], F2[1],F3[2],f4[2]); end; end.
for p1:= 1 to N1-M +1 do begin
for p2:= 1 to N2-M+1 do begin
for p3:=1 to N3-M+1 do begin
for p4:= 1 to N4-M +1 do
begin
corrispondenza:=true;
for i:= 0 to M do
if (F1[p1 + i] <> F2[p2 + i]) or ( F2[p2 + i] <> F3[p3 + i]) or (F3[p3 + i] <> F4[p4 + i]) then begin corrispondenza:= false; break; end;
writeln (p1,' ',p2,' ',p3,' ',p4,' ',corrispondenza);
if corrispondenza then
begin
Write('Case #', test, ': ');
WriteLn(p1-1, ' ', p2-1, ' ', p3-1, ' ', p4-1);
exit;
end;
end; end; end; end;
end;
end.
cHJvZ3JhbSBhbnRpdmlydXM7Cgp2YXIKICAgIE0sIE4xLCBOMiwgTjMsIE40LCBULCBwMSwgcDIsIHAzLCBwNCwgdGVzdCwgaSA6IExvbmdJbnQ7CiAgICBGMSwgRjIsIEYzLCBGNCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBBbnNpU3RyaW5nOwogICAgY29ycmlzcG9uZGVuemEgOiBib29sZWFuOwoKYmVnaW4KewogICAgZGVjb21tZW50YSBsZSBkdWUgcmlnaGUgc2VndWVudGkgc2UgdnVvaSBsZWdnZXJlL3Njcml2ZXJlIGRhIGZpbGUKICAgIGFzc2lnbihpbnB1dCwgICdpbnB1dC50eHQnKTsgIHJlc2V0KGlucHV0KTsKICAgIGFzc2lnbihvdXRwdXQsICdvdXRwdXQudHh0Jyk7IHJld3JpdGUob3V0cHV0KTsKfQoKICAgIFJlYWRMbihUKTsKICAgIGZvciB0ZXN0Oj0xIHRvIFQgZG8gYmVnaW4KICAgICAgICBSZWFkTG4oKTsKICAgICAgICBSZWFkTG4oTjEsIE4yLCBOMywgTjQpOwoKICAgICAgICBSZWFkTG4oTSk7CgogICAgICAgIFJlYWRMbihGMSk7CgogICAgICAgIFJlYWRMbihGMik7CgogICAgICAgIFJlYWRMbihGMyk7CgogICAgICAgIFJlYWRMbihGNCk7CiAgICAgICAgd3JpdGVsbihGMVs1XSwgRjJbMV0sRjNbMl0sZjRbMl0pOyBlbmQ7IGVuZC4KICAgICAgIAogICAgICAgIGZvciBwMTo9IDEgdG8gIE4xLU0gKzEgZG8gYmVnaW4KICAgICAgICAgICAgICBmb3IgcDI6PSAxIHRvIE4yLU0rMSAgZG8gYmVnaW4KICAgICAgICAgICAgICAgICAgIGZvciBwMzo9MSAgdG8gTjMtTSsxICBkbyAgYmVnaW4KICAgICAgICAgICAgICAgICAgICAgICBmb3IgcDQ6PSAxIHRvIE40LU0gKzEgZG8gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJlZ2luCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29ycmlzcG9uZGVuemE6PXRydWU7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaTo9IDAgdG8gTSBkbyAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoRjFbcDEgKyBpXSA8PiBGMltwMiArIGldKSBvciAoIEYyW3AyICsgaV0gPD4gRjNbcDMgKyBpXSkgb3IgKEYzW3AzICsgaV0gPD4gRjRbcDQgKyBpXSkgdGhlbiBiZWdpbiBjb3JyaXNwb25kZW56YTo9IGZhbHNlOyBicmVhazsgZW5kOyAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZWxuIChwMSwnICcscDIsJyAnLHAzLCcgJyxwNCwnICcsY29ycmlzcG9uZGVuemEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgY29ycmlzcG9uZGVuemEgdGhlbiAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWdpbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV3JpdGUoJ0Nhc2UgIycsIHRlc3QsICc6ICcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV3JpdGVMbihwMS0xLCAnICcsIHAyLTEsICcgJywgcDMtMSwgJyAnLCBwNC0xKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4aXQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZDsgZW5kOyBlbmQ7IGVuZDsKICAgZW5kOwplbmQuCg==