Cod sursa(job #1865910)

Utilizator Ruxandra985Nanu Ruxandra Laura Ruxandra985 Data 2 februarie 2017 12:20:14
Problema Koba Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <cstdio>

using namespace std;
int f[1001],term[1001];
int main()
{
    FILE *fin=fopen ("koba.in","r");
    FILE *fout=fopen ("koba.out","w");
    int n,a,b,c,nr,s,pas,i,aux;
    long long sol;
    fscanf (fin,"%d%d%d%d",&n,&a,&b,&c);
    a%=10;
    b%=10;
    c%=10;
    term[1]=a;
    term[2]=b+a;
    pas=2;
    while (f[a*100+b*10+c]==0){
        //printf ("%d ",a*100+b*10+c);
        pas++;
        f[a*100+b*10+c]=pas;
        term[pas]=c+term[pas-1];
        aux=(c+a*b)%10;
        a=b;
        b=c;
        c=aux;
    }
    nr=a*100+b*10+c;
    sol=term[f[nr]-3];
    s=term[pas]-term[f[nr]-1];
    n=n-f[nr]+3;
    sol=sol+s*(n/(pas-f[nr]+1));
    n%=(pas-f[nr]+1);
    for (i=0;i<1000;i++){
        if (f[i]>=f[nr] && f[i]<=f[nr]+n-1)
            sol=sol+i%10;
    }
    fprintf (fout,"%lld",sol);
    return 0;
}