Cod sursa(job #466282)

Utilizator ioalexno1Alexandru Bunget ioalexno1 Data 26 iunie 2010 12:48:03
Problema Fibo3 Scor 30
Compilator fpc Status done
Runda Stelele Informaticii 2010, gimnaziu si clasa a IX-a, Ziua 2 Marime 1.01 kb
program alex;
var f,g:text;
    c:array[-1..100]of int64;
    x1,x2,y1,y2,a,b,z,p,nr,x:int64;
    k,i,j,init,fin,l,r,m,d:longint;
    e:boolean;
begin
p:=1;
for i:=1 to 15 do
        p:=p*10;
p:=p*2;
k:=1;c[1]:=1;
a:=1;b:=1;z:=1;
repeat
a:=b;b:=z;
z:=a+b;
k:=k+1;
c[k]:=z;
until(z>p);
assign(g,'fibo3.out');rewrite(g);
assign(f,'fibo3.in');reset(f);
readln(f,d);
for i:=1 to d do
    begin
    readln(f,x1,y1,x2,y2);nr:=0;
    init:=0;fin:=0;
    for j:=0 to k do
        begin
        if(x1+y1<=c[j])and(x1+y1>c[j-1])then init:=j;
        if (x2+y2>=c[j])and(x2+y2<c[j+1])then fin:=j;
        end;
    if init<=0 then init:=1;
    for j:=init to fin do
        begin
    a:=x2-x1;b:=y2-y1;x:=c[j]-x1-y1;
    if(0<=x-a)and(x-a<=b)and(b<=x) then nr:=nr+b-x+a+1
    else if(x-a<=0)and(0<=x)and(x<=b)then nr:=nr+x+1
    else if(0<=x-a)and(x-a<=x)and(x<=b)then nr:=nr+a+1
    else if(x-a<=0)and(0<=b)and(b<=x)then nr:=nr+b+1;
        end;
    writeln(g,nr);
    end;
close(f);close(g);
end.