Pagini recente » Cod sursa (job #556166) | Cod sursa (job #2275801) | Cod sursa (job #2789189) | Cod sursa (job #1047586) | Cod sursa (job #2738200)
#include <bits/stdc++.h>
using namespace std;
ifstream f("fibo3.in");
ofstream g("fibo3.out");
long long i,n,a,b,c,val[105],lim;
long long card (pair <long long ,long long> a,pair <long long ,long long> b)
{
if (a.second<b.first)
{
return 0;
}
if (b.second<a.first)
{
return 0;
}
if (a.first<=b.first&&b.first<=a.second&&a.second<=b.second)
{
return a.second-b.first+1;
}
if (a.first<=b.first&&b.second<=a.second)
{
return b.second-b.first;
}
if (b.first<=a.first&&a.first<=b.second&&b.second<=a.second)
{
return b.second-a.first+1;
}
if (b.first<=a.first&&a.second<=b.second)
{
return a.second-a.first+1;
}
return 0;
}
long long x,y,x2,y2,sum,j;
int main()
{
f>>n;
a=1;
b=1;
val[1]=1;
val[2]=1;
for (i=1;i<=100;i++)
{
c=a+b;
val[i+2]=c;
if (c>2e15)
{
break;
}
a=b;
b=c;
}
lim=74;
for (i=1;i<=n;i++)
{
f>>x>>y>>x2>>y2;
sum=0;
for (j=2;j<=lim;j++)
{
if (x2+y2<val[j])
{
break;
}
pair <long long,long long> inter;
inter.second=val[j]-x;
inter.first=val[j]-x2;
sum=sum+card(inter,{y,y2});
}
g<<sum<<'\n';
}
return 0;
}