Pagini recente » Cod sursa (job #1317474) | Cod sursa (job #1519494) | Cod sursa (job #1444775) | Cod sursa (job #2791277) | Cod sursa (job #2021017)
#include <bits/stdc++.h>
using namespace std;
ifstream fi ("fibo3.in");
ofstream fo ("fibo3.out");
long long fib[75];
int main()
{
ios::sync_with_stdio(false);
long long n, i, j, xin, xout, x1, x2, y1, y2, nr;
fi >> n;
fib[0] = fib[1] = 1;
for(i = 2; i < 75; i++)
fib[i] = fib[i - 1] + fib[i - 2];
for(i = 0; i < n; i++){
fi >> x1 >> y1 >> x2 >> y2;
nr = 0;
for(j = 1; j < 75; j++){
xin = -1;
if(x1 <= fib[j] - y1 && fib[j] - y1 <= x2)//sa intersecteze latura de jos
xin = fib[j] - y1;
else if(y1 <= fib[j] - x2 && y2 >= fib[j] - x2)//altfel,daca intersecteaza latura dreapta
xin = x2;
if(y1 <= fib[j] - x1 && fib[j] - x1 <= y2)//intersecteaza latura stanga
xout = x1;
else if(x1 <= fib[j] - y2 && fib[j] - y2 <= x2)
xout = fib[j] - y2;
if(xin != -1)
nr += xin - xout + 1;
}
fo << nr << endl;
fi.close();
fo.close();
}
return 0;
}