TABLIC - Tablica

Tác giả: RR

Ngôn ngữ: Pascal

{$R+,Q+}
uses math;
const
  FINP='';
  FOUT='';
  MAXN=1001;
var
  f1,f2:text;
  sum,n,k:longint;
  u1,v1,u2,v2:array[1..MAXN] of longint;
procedure openF;
begin
  assign(f1,FINP); reset(f1);
  assign(f2,FOUT); rewrite(f2);
end;
procedure closeF;
begin
  close(f1);
  close(f2);
end;
procedure inp;
var
  i,x:longint;
begin
  read(f1,n,k);
  for i:=1 to k do
    begin
      read(f1,x,u2[i],v2[i]);
      u2[i]-=1; v2[i]-=1; x-=1;
      u1[i]:=x div n; v1[i]:=x mod n;
    end;
end;
procedure solve;
var
  i,j,u,v:longint;
begin
  for i:=1 to k do
    begin
      if u1[i]<u2[i] then u:=u2[i]-u1[i]
      else if u1[i]>u2[i] then u:=n-u1[i]+u2[i]
      else u:=0;
      if v1[i]<v2[i] then v:=v2[i]-v1[i]
      else if v1[i]>v2[i] then v:=n-v1[i]+v2[i]
      else v:=0;
      writeln(f2,u+v);
      for j:=i to k do
      if u1[i]=u1[j] then
        begin
          v1[j]+=v;
          if v1[j]>=n then v1[j]-=n;
        end;
      for j:=i to k do
      if v1[i]=v1[j] then
        begin
          u1[j]+=u;
          if u1[j]>=n then u1[j]-=n;
        end;
    end;
end;
begin
  openF;
  inp;
  solve;
  closeF;
end.

Download