Cod sursa(job #724529)

Utilizator danalex97Dan H Alexandru danalex97 Data 26 martie 2012 17:08:22
Problema Fibo3 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <cstdio>
#include <string>

const int maxN = 101;
using namespace std;

long long rez, F[maxN];
int i, nr, T;
long long x1, x2, y1, y2;
long long mx1, mx2;
int main ()
{

	freopen ("fibo3.in", "r", stdin);
	freopen ("fibo3.out", "w", stdout);

	F[1] = 1; F[2] = 1;
	
	nr = 100;
	for (i = 3; i < nr; i++)
		F[i] = F[i - 2] + F[i - 1];

	scanf ("%d\n", &T);

	while (T--) {

		scanf ("%lld %lld %lld %lld\n", &x1, &y1, &x2, &y2);
		rez = 0;
		for (i = 2; i < nr; i++) {

			if (F[i] < x1 + y1) continue;
			if (F[i] > x2 + y2) break;
			
			mx1 = min (x2, F[i] - y1);
			mx2 = max (x1, F[i] - y2);
			rez += mx1 - mx2 + 1;
		}
		printf ("%lld\n", rez);
	}
	return 0;
}