Cod sursa(job #727358)

Utilizator avram_florinavram florin constantin avram_florin Data 27 martie 2012 21:44:41
Problema Fibo3 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include<fstream>
#include<cstdio>

using namespace std;

const long long MaxF = 1LL*1000*1000*1000*1000*1000;
const int MaxN = 100;

const char InFile[] = "fibo3.in";
const char OutFile[] = "fibo3.out";

long long Fib[MaxN],X1,X2,Y1,Y2,Sol;
int N;

void precalc()
{
	Fib[1] = Fib[2] = 1;
	for( register int i = 3 ; i < MaxN ; ++i )
		Fib[i] = Fib[i-1] + Fib[i-2];
}

long long minim( long long a , long long b )
{
	return a > b ? b : a;
}

long long maxim( long long a , long long b )
{
	return a > b ? a : b;
}

int main()
{
	ifstream fin( InFile );
	ofstream fout( OutFile );
	fin >> N;
	precalc();
	for( ; N ; --N )
		{
			fin >> X1 >> Y1 >> X2 >> Y2;
			Sol = 0;
			for( register int i = 2 ; i < MaxN ; ++i )
				{
					if( Fib[i] < X1+Y1 )
						continue;
					if( Fib[i] > X2+Y2 )
						break;
					Sol += minim(X2,Fib[i]-Y1) - maxim(X1,Fib[i]-Y2) + 1;
				}
			fout << Sol << '\n';
		}
	fin.close();fout.close();
	return 0;
}