Cod sursa(job #480038)

Utilizator andrei.dAndrei Diaconeasa andrei.d Data 26 august 2010 11:34:41
Problema Fibo3 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <cstdio>

#define file_in "fibo3.in"
#define file_out "fibo3.out"

#define ll long long

int T;
ll x1,x2,y1,y2;
ll fib[100];


void citire(){
	
	freopen(file_in,"r",stdin);
	freopen(file_out,"w",stdout);
	
	scanf("%d", &T);
}

inline ll min(ll a, ll b) { return a<b?a:b; }
inline ll max(ll a, ll b) { return a>b?a:b; }

void solve(){
	
	int i,j;
	
	fib[1]=1;
	fib[2]=2;
	
	for (i=3;i<=75;++i)
		 fib[i]=fib[i-1]+fib[i-2];
	
	while(T--)
	{
		scanf("%lld %lld %lld %lld", &x1, &y1, &x2, &y2);
		 
		ll nr=0;
		for (j=1;j<=75;++j)
		{
			if (fib[j]<x1+y1) continue;
			if (fib[j]>x2+y2) break;
			ll xmin=max(x1,fib[j]-y2); 
			ll xmax=min(x2,fib[j]-y1); 
			nr+=xmax-xmin+1;
		}
		printf("%lld\n", nr);
	}
}

int main(){
	
	citire();
	solve();
	
	fclose(stdin);
	fclose(stdout);
	
	return 0;
	
}