Pagini recente » Cod sursa (job #19576) | Cod sursa (job #1966647) | Cod sursa (job #997405) | Cod sursa (job #2027292) | Cod sursa (job #779778)
Cod sursa(job #779778)
#include <fstream>
using namespace std;
int N, cnt;
long long x1, y1, x2, y2;
long long Fibo[76];
void Initializare () {
long long Lmax = 1000000000;
Lmax *= 1LL * 1000000;
Fibo[0] = 1;
Fibo[1] = 1;
for (cnt = 1; Fibo[cnt] <= Lmax; cnt++)
{
Fibo[cnt + 1] = Fibo[cnt] + Fibo[cnt - 1];
}
}
inline long long min (long long a, long long b) {
if (a < b) return a;
return b;
}
inline long long max (long long a, long long b) {
if (a > b) return a;
return b;
}
long long Business () {
long long R = 0, aux;
if (y2 < y1) aux = y2, y2 = y1, y1 = aux;
if (x2 < x1) aux = x2, x2 = x1, x1 = aux;
for (int i = 1; i <= cnt; i++)
{
R += max (0, min (y2, Fibo[i] - x1) - max (y1, Fibo[i] - x2) + 1);
}
return R;
}
int main () {
ifstream fin ("fibo3.in");
ofstream fout ("fibo3.out");
fin >> N;
Initializare ();
for (int i = 0; i < N; i++)
{
fin >> x1 >> y1 >> x2 >> y2;
fout << Business () << "\n";
}
fin.close ();
fout.close ();
return 0;
}