Cod sursa(job #961283)

Utilizator primulDarie Sergiu primul Data 11 iunie 2013 20:51:51
Problema Koba Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <cassert>
#include <cstdio>
 
int n=0,i=0,aux=0,a=0,b=0,c=0,t[10005],v[1005];
 
int main()
{
    assert(freopen("koba.in","r",stdin));
    assert(freopen("koba.out","w",stdout));
 
    assert(scanf("%d%d%d%d",&n,&a,&b,&c));
    a%=10;t[1]=a;
    b%=10;t[2]=a+b;
    c%=10;t[3]=c+t[2];
    v[100*a+10*b+c]=3;
 
    for (i=4; i<=n; ++i)
    {
        aux=(c+a*b)%10;
        a=b;b=c;c=aux;
 
        t[i]=t[i-1]+aux;
        aux=100*a+10*b+c;
        if (v[aux]>0)
            break;
        else
            v[aux]=i;
    }
 
    aux=v[100*a+10*b+c];
    int s=(t[i]-t[aux])*((n-aux)/(i-aux))+t[aux+(n-aux)%(i-aux)];
    printf("%d\n",s);
 
    return 0;
}