Pagini recente » Cod sursa (job #639231) | Cod sursa (job #3257806) | Cod sursa (job #354565) | Cod sursa (job #588060) | Cod sursa (job #466121)
Cod sursa(job #466121)
program fibo;
var fin, g:text;
v:array[1..100] of int64;
rez, nf, f, n, x, y, sf, inc, sf1, sf2, inc2, inc1, x1, x2,y1, y2:int64;
i, ii:longint;
function max(a,b:int64):int64;
begin
if a>b then
max:=a
else
max:=b;
end;
function min(a,b:int64):int64;
begin
if a<b then
min:=a
else
min:=b;
end;
procedure calculare;
begin
rez:=0;
for i:=2 to nf do
if v[i]>x2+y2 then
break
else
if (x1+y1<=v[i]) and (v[i]<=x2+y2) then
begin
f:=v[i];
inc1:=x1;
sf1:=x2;
inc2:=f-y2;
sf2:=f-y1;
inc:=max(inc1,inc2);
sf:=min(sf1,sf2);
if sf>=inc then
rez:=rez+sf-inc+1
end;
writeln(g,rez);
end;
begin
assign(fin,'fibo3.in'); reset(fin);
assign(g,'fibo3.out'); rewrite(g);
readln(fin,n);
v[1]:=1;
v[2]:=1;
i:=3;
while v[i-1]<2000000000000000 do
begin
v[i]:=v[i-2]+v[i-1];
{ writeln(v[i],' ',i);}
i:=i+1;
end;
nf:=i;
for ii:=1 to n do
begin
read(fin,x1,y1,x2,y2);
calculare;
end;
close(fin);
close(g);
end.