Pagini recente » Cod sursa (job #3155526) | Monitorul de evaluare | Cod sursa (job #1854612) | Cod sursa (job #2974300) | Cod sursa (job #514419)
Cod sursa(job #514419)
#include <fstream>
#define Nmax 100002
#define Fmax 102
#define Vmax 2000000000000000LL
#define LL long long
using namespace std;
ifstream fin("fibo3.in");
ofstream fout("fibo3.out");
LL F[Fmax],sol;
int T;
inline LL Abs(LL x){ return x>0? x:-x; }
inline LL Minim(LL x,LL y){ return x<y ? x:y; }
int main(){
int i,j,N; LL x1,x2,y1,y2;
F[1]=1; F[2]=2;
for(i=3; F[i-1]+F[i-2]<=Vmax; ++i) F[i]=F[i-2]+F[i-1];
N=i-1;
fin>>T;
for(i=1;i<=T;++i){
fin>>x1>>y1>>x2>>y2;
sol=0;
for(j=1; j<=N; ++j){
if( F[j]<x1+y1 ) continue;
if( F[j]>x2+y2 ) break;
if( F[j]<=x1+y2)
sol+=Minim(F[j]-x1-y1+1,x2-x1+1);
else sol += Minim(x2+y2-F[j]+1,y2-y1+1);
}
fout<<sol<<'\n';
}
fin.close(); fout.close();
return 0;
}