Pagini recente » Cod sursa (job #2863473) | Cod sursa (job #976215) | Cod sursa (job #2345253) | Cod sursa (job #1414234) | Cod sursa (job #466282)
Cod sursa(job #466282)
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.