Pagini recente » Cod sursa (job #445020) | Cod sursa (job #1672384) | Cod sursa (job #391142) | Cod sursa (job #1793336) | Cod sursa (job #1992049)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin ("fibo3.in"); ofstream fout ("fibo3.out");
typedef long long i64;
const i64 lim = 1e15 + 5;
const i64 inf = 1LL << 60;
vector< i64 > f;
int main() {
f.push_back( 1 );
i64 a = 1, b = 1;
while (a + b <= lim) {
i64 c = a + b;
f.push_back( c );
a = b; b = c;
}
int n;
fin >> n;
for (int i = 1; i <= n; ++ i) {
i64 c, d;
fin >> a >> b >> c >> d;
i64 ans = 0;
for (const auto &j : f) {
if (c + d < j) break;
if (a + b <= j) {
i64 x, y;
if (a <= j - b && j - b <= c) {
x = b;
} else {
x = j - c;
}
if (a <= j - d && j - d <= c) {
y = d;
} else {
y = j - a;
}
ans += y - x + 1;
}
}
fout << ans << "\n";
}
fin.close();
fout.close();
return 0;
}