Cod sursa(job #514419)

Utilizator tamas_iuliaTamas Iulia tamas_iulia Data 18 decembrie 2010 17:50:52
Problema Fibo3 Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#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;
}