Cod sursa(job #2253692)

Utilizator ialexia_ioanaAlexia Ichim ialexia_ioana Data 4 octombrie 2018 11:51:07
Problema Fibo3 Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <cstdio>
#include <algorithm>
#include <cmath>

using namespace std;
long long v[80];

long long x, y, s;

long long aparitii(long long n)
{
    n-=s;
    int m;
    if (n<=x)
        m=n+1;
    else
        m=x+y-n+1;
    if (m>=y+1)
        m=y+1;
    return m;
}

long long ans(long long x, long long y)
{
    int i;
    long long sum=0;
    for(i=1; i<=75; i++)
    {
        if (v[i]<=x+y+s && v[i]>=s)
            sum+=aparitii(v[i]);
    }
    return sum;
}


int main()
{
    freopen("fibo3.in", "r", stdin);
    freopen("fibo3.out", "w", stdout);
    int i, n;
    v[0]=v[1]=1;
    for(i=2; i<=75; i++)
        v[i]=v[i-1]+v[i-2];
    long long x1, x2, y1, y2;
    scanf("%d", &n);
    for(i=1; i<=n; i++)
    {
        scanf("%lld%lld%lld%lld", &x1, &y1, &x2, &y2);
        s=x1+y1;
        x=x2-x1;
        y=y2-y1;
        if (x<y)
        {
            x1=x;
            x=y;
            y=x1;
        }
        printf("%lld\n", ans(x, y));
    }
    return 0;
}