Pagini recente » Cod sursa (job #302407) | Cod sursa (job #1980996) | Cod sursa (job #1373601) | Cod sursa (job #2658393) | Cod sursa (job #197605)
Cod sursa(job #197605)
type coord=record
x,y:longint;
end;
var a,t:array[0..100000]of coord;
f,g:text;
aux,c,x1,y1,x2,y2,n,m,i,k,nr:longint;
procedure sort(si,sj:longint);
var nr,di,dj,i,j,m:longint;
begin
if si<sj then begin
m:=(si+sj)div 2;
sort(si,m);
sort(m+1,sj);
i:=si;
j:=m+1;
nr:=0;
while (i<=m) and (j<=sj) do
if a[i].y<=a[j].y then begin
inc(nr);
t[nr]:=a[i];
inc(i);
end else begin
inc(nr);
t[nr]:=a[j];
inc(j);
end;
while (i<=m) do begin
inc(nr);
t[nr]:=a[i];
inc(i);
end;
while (j<=sj) do begin
inc(nr);
t[nr]:=a[j];
inc(j);
end;
for i:=1 to nr do
a[si+i-1]:=t[i];
end;
end;
begin
assign(f,'gropi.in');
assign(g,'gropi.out');
reset(f);
rewrite(g);
read(f,c,n);
a[0].x:=2;
a[1].x:=1;
a[1].y:=0;
a[2].x:=2;
a[2].y:=0;
for i:=1 to n do begin
inc(a[0].x);
read(f,a[a[0].x].x,a[a[0].x].y);
end;
inc(a[0].x,2);
a[a[0].x-1].x:=1;
a[a[0].x-1].y:=c+1;
a[a[0].x].x:=2;
a[a[0].x].y:=c+1;
sort(1,a[0].x);
read(f,m);
for k:=1 to m do begin
read(f,x1,y1,x2,y2);
if y2<y1 then begin
aux:=y1;
y1:=y2;
y2:=aux;
aux:=x1;
x1:=x2;
x2:=aux;
end;
for i:=1 to a[0].x do
if (a[i].x=x1) and (y1<a[i].y) then
break;
nr:=0;
while a[i].y<=y2 do begin
if a[i].x=x1 then begin
inc(nr);
x1:=(x1 mod 2)+1;
end;
inc(i);
end;
if x1<>x2 then
inc(nr);
writeln(g,nr+(y2-y1)+1);
end;
close(f);
close(g);
end.