SPOJ – VMDAOBIT

Đề bài: http://vn.spoj.com/problems/VMDAOBIT/

Thuật toán:

  • (đang cập nhập)

Code:

const   fi='';
        fo='';
        maxn=100;
type    point=record
                x,y:integer;
                end;
var     m,n,i,j,dem:longint;
        a,b:array[1..maxn,1..maxn] of byte;
        res:array[1..maxn*maxn] of point;
        kiemtra:boolean;
procedure update(x,y:integer);
var     i,j:integer;
begin
        for i:=x to x+2 do
                for j:=y to y+2 do
                        if b[i,j]=1 then b[i,j]:=0 else b[i,j]:=1;
end;
procedure xaydung;
var     i,j:integer;
begin
  for i:=1 to m do
  begin
    for j:=1 to n-2 do
        begin
            if b[i,j]=1 then
                begin
                    inc(dem);
                    res[dem].x:=i;
                    res[dem].y:=j;
                    update(i,j);
                end;
        end;
    for j:=n-1 to n do
        if b[i,j]=1 then begin kiemtra:=false; exit; end;
  end;
end;
procedure init;
begin
    b:=a;
    dem:=0;
    kiemtra:=true;
end;
begin
    assign(input,fi);reset(input);
    assigN(output,fo);rewrite(output);
 
    readln(m,n);
    for i:=1 to m do
        for j:=1 to n do read(a[i,j]);
 
    init;
    xaydung;
 
    if kiemtra then
        begin
                writeln(dem);
                for i:=1 to dem do writeln(res[i].x,' ',res[i].y);
        end else write(-1);
 
    close(input);close(output);
end.
Khuyên dùng

 

About Aida Nana

Nghề chính là chém gió, quăng bom và ném lựu đạn.
Nghề phụ là cắt cỏ, chém chuối, cưa cây......

Speak Your Mind

*