Cod sursa(job #466236)

Utilizator ursu-valiJerdea Florin ursu-vali Data 26 iunie 2010 12:25:02
Problema Fibo3 Scor 0
Compilator cpp Status done
Runda Stelele Informaticii 2010, gimnaziu si clasa a IX-a, Ziua 2 Marime 1.69 kb
#include<stdio.h>
#define infile "fibo3.in"
#define outfile "fibo3.out"

unsigned long long a[100];
long n;

void solve()
{
    long nr,i,j,k;
    long long x,y,x1,y1,x2,y2;
    long long ras;
    long min,max;

    scanf("%ld",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%lld %lld %lld %lld",&x1,&y1,&x2,&y2);
        nr=0;
        x=y1+x1;
        y=y2+x1;
        min=100;
        max=0;
        for(k=1;k<=74;k++)
            {
                if((a[k]<=y)&&(a[k]>=x))
                    {
                        nr++;
                        if(a[k]>max)
                            max=k;
                        if(a[k]<min)
                            min=k;
                    }
                else
                    if(a[k]>y)
                        break;
            }
        ras=nr;
        for(j=x1+1;j<=x2;j++)
                {
                    x+=1;
                    y+=1;
                    if(x>a[min])
                       {
                           nr--;
                           min++;
                       }
                    if(y>=a[max+1])
                        {
                            nr++;
                            max++;
                        }
                    ras+=nr;
                }
        printf("%lld\n",ras);
    }
}
void fibo()
{
    long i=2;
    //a[0]=1;
    a[1]=1;
    a[2]=2;
    while(i<=74)
    {
        i++;
        a[i]=a[i-1]+a[i-2];
       // a[0]=i;
    }
    //printf("%llu %llu",a[0],a[70]);
}

int main()
{
    freopen(infile,"r",stdin);
    freopen(outfile,"w",stdout);
    fibo();
    solve();
    fclose(stdin);
    fclose(stdout);
    return 0;
}