Cod sursa(job #197774)

Utilizator andrici_cezarAndrici Cezar andrici_cezar Data 5 iulie 2008 20:36:15
Problema Gropi Scor 50
Compilator fpc Status done
Runda Arhiva de probleme Marime 1.59 kb
var f,g:text;
    n,p,i,time,j,l,c,aux,d,m,h,b:longint;
    a:array[1..2 , 1..800000]of shortint;
begin
assign(f,'gropi.in');reset(f);
assign(g,'gropi.out');rewrite(g);
readln(f,n,p);
for i:=1 to p do
    begin
    readln(f,c,b);
    a[c,b]:=1;
    end;
readln(f,m);
for i:=1 to m do
    begin
    readln(f,c,b,d,h);
    time:=0;
    if b>h then begin
                aux:=b;
                b:=h;
                h:=aux;
                aux:=c;
                c:=d;
                d:=aux;
                end;
    repeat
            if (b<>h+1)and(a[c,b]<>1)then begin
                                                 a[c,b]:=2;
                                                 b:=b+1;
                                                 if(c<>d)and(h+1=b)then a[d,b-1]:=2;
                                                 end
            else if (b<>h+1)and(a[c,b]=1)then begin
                                                    if c=1 then c:=c+1
                                                    else c:=c-1;
                                                    b:=b-1;
                                                    a[c,b]:=2;
                                                    end;

    until h+1=b;
    for j:=1 to n do
        if a[1,j]=2 then begin
                         time:=time+1;
                         a[1,j]:=0;
                         end;
    for j:=1 to n do
        if a[2,j]=2 then begin
                         time:=time+1;
                         a[2,j]:=0;
                         end;
    writeln(g,time);
    end;
close(G);
end.