Cod sursa(job #378394)

Utilizator eudanipEugenie Daniel Posdarascu eudanip Data 28 decembrie 2009 15:05:58
Problema Koba Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include<stdio.h>
int t1,t2,t3,t4,s,p,sum[1005],poz[1005],viz[1005],pdif,sdif,n;
int norma=0,nrp;
int main ()
{
    int i;
    freopen("koba.in","r",stdin);
    freopen("koba.out","w",stdout);
    scanf("%d%d%d%d",&n,&t1,&t2,&t3);
    t1=t1%10;
    t2=t2%10;t3=t3%10;
    s+=t1+t2+t3;
    p=t1*100+t2*10+t3;
    viz[p]=1;
    sum[p]=s;
    poz[p]=3;
    for(i=4;i<=n;i++)
    {
        t4=(t1+t2*t3)%10;
        t1=t2;t2=t3;t3=t4;
        s+=t3;
        p=t1*100+t2*10+t3;
        if(norma==1)
           continue;
        if(!viz[p])
        {
            viz[p]=1;
            sum[p]=s;
            poz[p]=i;
        }
        else
        {
            sdif=s-sum[p];
            pdif=i-poz[p];
            nrp=(n-i)/pdif;
            s+=nrp*sdif;
            i+=nrp*pdif;
            norma=1;
        }//else
    }
    printf("%d\n",s);
    return 0;
}