Pagini recente » Cod sursa (job #68862) | Cod sursa (job #2696804) | Cod sursa (job #1000502) | Cod sursa (job #3168018) | Cod sursa (job #469159)
Cod sursa(job #469159)
#include <cstdio>
#include <cmath>
#define max(a, b) ((a) > (b) ? (a) : (b))
#define min(a, b) ((a) < (b) ? (a) : (b))
#define DMAX 2000000000000005LL
#define DN 100005
long long f[DN],cont=2;
void fib() {
f[1]=1,f[2]=2;
for(; f[cont]<=DMAX; )
f[++cont]=f[cont-1]+f[cont-2];
}
int main()
{
int n;
long long x1,x2,y1,y2,nr,xmin,xmax,j=0;
freopen("fibo3.in","r",stdin);
freopen("fibo3.out","w",stdout);
scanf("%d",&n);
fib();
for(int i=1; i<=n; i++) {
scanf("%lld %lld %lld %lld",&x1,&y1,&x2,&y2);
nr=0;
for(j = 1;j <=cont; ++j) {
if(f[j]<x1+y1) continue;
if(f[j]>x2+y2) break;
xmin=max(x1, f[j] - y2);
xmax=min(x2, f[j] - y1);
nr+=xmax-xmin+1;
}
printf("%lld\n",nr);
}
return 0;
}