Cod sursa(job #484476)

Utilizator ProtomanAndrei Purice Protoman Data 14 septembrie 2010 17:55:39
Problema Fibo3 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <algorithm>
#include <stdio.h>

#define MAX 10000000000000000LL
#define ll long long

using namespace std;

int n;
ll fib[128];

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

	scanf("%d", &n);

	fib[0] = fib[1] = (ll) 1;

	for (int i = 1; fib[i++] <= MAX; )
		fib[i] = fib[i - 1] + fib[i - 2];

	for (int i = 1; i <= n; i++)
	{
		ll x1, y1, x2, y2;
		scanf("%lld %lld %lld %lld", &x1, &y1, &x2, &y2);

		ll sol = 0;
		for (int i = 0; fib[i++] <= MAX; )
		{
			ll xf = fib[i] - y1;
			ll xs = fib[i] - y2;

			sol += (ll) max((ll) 0, 1 + min(x2, xf) - max(x1, xs));
		}

		printf("%lld\n", sol);
	}

	fclose(stdin);
	fclose(stdout);
	return 0;
}