PARIGAME - VOI 2011 Trò chơi chẵn lẻ

Tác giả: ladpro98

Ngôn ngữ: Pascal

program parigame;
uses    math;
const   fi='';
        maxN=555;
var     a,sx,sy,win:array[0..maxN,0..maxN] of longint;
        n,t,tt:longint;
        inp:text;

procedure Enter;
begin
        assign(inp,fi);
        reset(inp);
        readln(inp,t);
end;

procedure input;
var     i,j:longint;
begin
        readln(inp,n);
        for i:=1 to n do
        for j:=1 to n do
        read(inp,a[i,j]);

end;

procedure dp;
var     i,j:longint;
begin
        for i:=1 to n do
        for j:=1 to n do
        begin
                sx[i,j]:=(sx[i-1,j]+a[i,j]) and 1;
                sy[i,j]:=(sy[i,j-1]+a[i,j]) and 1;
                win[i,j]:=0;
                if sx[i,j]=0 then win[i,j]:=max(win[i,j],win[i,j-1] xor 1);
                if sy[i,j]=0 then win[i,j]:=max(win[i,j],win[i-1,j] xor 1);
        end;
end;

procedure output;
begin
        if win[n,n]=1 then
        writeln('YES')
        else
        writeln('NO');
end;

begin
        Enter;
        for tt:=1 to t do
        begin
                input;
                dp;
                output;
        end;
end.

Download