Pagini recente » Cod sursa (job #2618589) | Cod sursa (job #1778395) | Cod sursa (job #1261227) | Cod sursa (job #1841460) | Cod sursa (job #727358)
Cod sursa(job #727358)
#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;
}