TABLIC - Tablica
Tác giả: flashmt
Ngôn ngữ: Pascal
const fi='';
fo='';
var n,k,dem:longint;
re:array[1..1000] of integer;
a:array[1..1000] of longint;
b,cur:array[1..1000,0..1] of integer;
procedure rf;
var i:longint;
begin
assign(input,fi);
reset(input);
readln(n,k);
for i:=1 to k do
begin
readln(a[i],b[i,0],b[i,1]);
cur[i,0]:=(a[i]+n-1) div n;
cur[i,1]:=a[i] mod n;
if cur[i,1]=0 then cur[i,1]:=n;
end;
close(input);
end;
procedure rotate(z,val,now:longint);
var i:longint;
begin
if val=0 then exit;
dem:=dem+val;
for i:=now to k do
if cur[i,z]=cur[now,z] then
begin
cur[i,1-z]:=(cur[i,1-z]+val) mod n;
if cur[i,1-z]=0 then cur[i,1-z]:=n;
end;
end;
procedure pr;
var i:longint;
begin
for i:=1 to k do
begin
dem:=0;
if cur[i,1]<=b[i,1] then rotate(0,b[i,1]-cur[i,1],i)
else rotate(0,b[i,1]+n-cur[i,1],i);
if cur[i,0]<=b[i,0] then rotate(1,b[i,0]-cur[i,0],i)
else rotate(1,b[i,0]+n-cur[i,0],i);
re[i]:=dem;
end;
end;
procedure wf;
var i:longint;
begin
assign(output,fo);
rewrite(output);
for i:=1 to k do writeln(re[i]);
close(output);
end;
begin
rf;
pr;
wf;
end.