Pagini recente » Cod sursa (job #2285611) | Cod sursa (job #1756808) | Cod sursa (job #1342229) | Cod sursa (job #2377724) | Cod sursa (job #528316)
Cod sursa(job #528316)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream fin("fibo3.in");
ofstream fout("fibo3.out");
const long long LIM = 10000000000000000LL;
#define ll long long
ll i , j , n , x , y , x2 , y2 , fib[90];
ll query ( ll x , ll y ) {
ll ans = 0 , i;
if ( x < 0 || y < 0 ) return 0;
if ( x > y ) swap (x , y);
for( i = 1 ; fib[i] <= x + y ; ++i ) {
ll act = fib[i];
ans += act + 1;
if ( act > x ) ans -= act - x;
if ( act > y ) ans -= act - y;
}
return ans;
}
int main()
{
for( fib[0] = fib[1] = 1 , i = 2 ; fib[i] <= LIM ; ++i )
fib[i] = fib[i - 1] + fib[i - 2];
fin >> n;
for( ; n -- ; ) {
fin >> x >> y >> x2 >> y2;
fout << query(x2,y2) - query(x2 , y - 1) - query(x - 1 ,y2) + query(x - 1, y - 1) <<"\n";
}
return 0;
}