Cod sursa(job #1037206)

Utilizator TibixbAndrei Tiberiu Tibixb Data 19 noiembrie 2013 22:39:50
Problema Koba Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include<fstream>
using namespace std;
int n, p3, p2, p1, p4, k, p, u, ok, sum, i, nrsum, nrc, nrr, sum2;
struct cub{
    int r;
    int m;
    int poz;
};
cub v[1100];
FILE*fin=fopen("koba.in","r");
ofstream fout("koba.out");
int main(){
    fscanf(fin,"%d%d%d%d",&n, &p3, &p2, &p1);
    p3%=10; p2%=10; p1%=10;
    v[1].r=p3*100+p2*10+p1;
    v[v[1].r].m=1;
    v[v[1].r].poz=1;
    k=1;
    while(ok==0){
        p4=(p3*p2+p1)%10;
        v[++k].r=(v[k-1].r%100)*10+p4;
        if(v[v[k].r].m==1){
            p=v[v[k].r].poz;
            u=k;
            ok=1;
        }
        else{
           v [v[k].r].m=1;
           v [v[k].r].poz=k;
            p3=p2; p2=p1; p1=p4;
        }
    }
    for(i=1; i<=p-1; i++)
        sum+=v[i].r/100;
    for(i=p; i<u; i++)
        sum2+=v[i].r/100;
    nrsum=u-p;
    nrc=(n-p+1)/nrsum;
    nrr=(n-p+1)%nrsum;
    sum+=sum2*nrc;
    for(i=p; i<=p+nrr-1; i++)
        sum+=v[i].r/100;
    fout<<sum<<"\n";
return 0;
}