Cod sursa(job #852618)

Utilizator stoicatheoFlirk Navok stoicatheo Data 11 ianuarie 2013 15:05:41
Problema Koba Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include<iostream>
#include<fstream>
using namespace std;
int v[1000],s[1000001];
int main ()
{
    int a,b,c,n,i,poz,sum,d;
    ifstream f("koba.in");
    ofstream g("koba.out");
    f>>n>>a>>b>>c;
    f.close();
    a=a%10;
    b=b%10;
    c=c%10;
    v[a*100+b*10+c]=1;
    s[1]=a;
    s[2]=s[1]+b;
    s[3]=s[2]+c;
    for(i=4;i<=n;i++) {
        d=(c+b*a)%10;
        s[i]=s[i-1]+d;
        a=b;
        b=c;
        c=d;
        if(v[a*100+b*10+c]!=0)
            break;
        else v[a*100+b*10+c]=i-2;
    }
    if(i>n)
        g<<s[n]<<'\n';
    else {
        poz=v[a*100+b*10+c]+3;
        sum=s[poz-1]+(s[i]-s[poz-1])*((n-poz-1)/(i-poz+1));
        poz=poz-1+((n-poz-1)/(i-poz+1))*(i-poz+1);
        for(i=poz+1;i<=n;i++) {
            d=(c+b*a)%10;
            sum=sum+d;
            a=b;
            b=c;
            c=d;
        }
        g<<sum<<'\n';
    }
    g.close();
    return 0;
}