LKNIGHT - Mã đi tuần
Tác giả: ladpro98
Ngôn ngữ: Pascal
program lknight;
uses math;
const fi='';
dx:array[1..8] of longint = (-2,-1,1,2,2,1,-1,-2);
dy:array[1..8] of longint = (1,2,2,1,-1,-2,-2,-1);
var n,k,c,x,y,maxx,maxy,minx,miny,res,i,j:longint;
cc:char;
inp:text;
function inBound(i,j:longint):boolean;
begin
exit((1<=i) and (i<=n) and (1<=j) and (j<=n));
end;
begin
assign(inp,fi);reset(inp);
readln(inp,n,k);
for i:=1 to k do
begin
read(inp,cc);
c:=ord(cc)-48;
inc(x,dx[c]);
inc(y,dy[c]);
maxX:=max(maxX,x);
minX:=min(minX,x);
maxY:=max(maxY,y);
minY:=min(minY,y);
end;
for i:=1 to n do
for j:=1 to n do
if inBound(i+maxX,j+maxY) and inBound(i+minX,j+minY) then
inc(res);
write(res);
end.