Thứ Hai, 9 tháng 5, 2022

COVUA PASCAL

CONST fi='covua.inp';fo='covua.out';
var    ch : char;
      x1, y1, x2, y2, i, j, tot,d : longint;
      a: array[-2..10,-2..10] of longint;
    h:array[1..8] of longint = (-2,-1,1,2,2,1,-1,-2);
    c:array[1..8] of longint = (1,2,2,1,-1,-2,-2,-1);
procedure nhap;    // nhap input va chuyen he toa do
begin
    read(ch); y1 := ord(ch) - 96;
    readln(x1); x1:=9-x1;
    read(ch); y2 := ord(ch) - 96;
    readln(x2); x2:=9-x2;
end;

procedure khoi_tao;    // khoi tao bang a chua co o nao bi khong che
var    i,j:longint;
begin
    for i:=1 to 8 do
                for j:=1 to 8 do a[i,j]:=0;
     a[x1,y1]:=1;
    a[x2,y2]:=1;


end;

procedure quan_xe_an; // danh dau nhung o bi quan xe (x1, y1) khong che
begin
    for i:=1 to 8 do a[x1,i]:=1;    //khong che cac o hang x1
    for i:=1 to 8 do a[i,y1]:=1;    //khong che cac o cot y1
end;

procedure quan_ma_an;    // danh dau 8 o bi quan ma (x2, y2) khong che
var     i :longint ;
begin
    for i:=1 to 8 do
        a[x2+h[i],y2+c[i]]:=1;
end;

procedure quan_ma2;    //danh dau 8 o khi dat quan ma thu ba vao se an quan xe
var    i :longint ;
begin
    for i:=1 to 8 do
        a[x1+h[i],y1+c[i]]:=1;
end;

procedure tinh_kq;    // dem lai cac o a[i,j]=0 la cac o co the dat duoc
var    i,j:longint;
begin
    d:=0;
    for i:=1 to 8 do
                for j:=1 to 8 do
                         if a[i,j]=0 then inc(d);
    writeln(d);
end;

begin
    assign(input,fi);reset(input);
    assign(output,fo);rewrite(output);
    nhap;
    khoi_tao;
    quan_xe_an;
    quan_ma_an;
    quan_ma2;
    tinh_kq;
    close(input);close(output);
end.

Không có nhận xét nào:

Đăng nhận xét

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.