Pagini recente » Cod sursa (job #742082) | Cod sursa (job #2710379) | Cod sursa (job #1615125) | Cod sursa (job #2622180) | Cod sursa (job #469696)
Cod sursa(job #469696)
#include<fstream>
#define limit 1000000000000001ll
using namespace std;
long long f[100];
int main()
{
int i;
long long l,sum;
i=2;
f[0]=f[1]=1;
while(f[i-2]+f[i-1]<=limit)
{
f[i]=f[i-1]+f[i-2];
++i;
}
int nr=i-1;
int n;
long long x1,x2,y1,y2;
ifstream read ("fibo3.in");
ofstream write ("fibo3.out");
read>>n;
while(n--)
{
long long sol=0;
read>>x1>>y1>>x2>>y2;
l=max(x2-x1,y2-y1);
for(i=1;i<=nr;++i)
if(x1+y1<=f[i]&&f[i]<=x2+y2)
{
sum=f[i]-x1-y1;
if(sum<=l)
sol+=min(sum+1,min(x2-x1+1,y2-y1+1));
else
{
sum=1ll*2*l-sum;
sol+=min(sum+1,min(x2-x1+1,y2-y1+1));
}
}
write<<sol<<'\n';
}
return 0;
}