Cod sursa(job #1865079)

Utilizator Liviu_Ionut_MoantaMoanta Ionut Liviu Liviu_Ionut_Moanta Data 1 februarie 2017 12:49:59
Problema Koba Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.19 kb
#include<fstream>
#include<algorithm>
#include<cmath>
using namespace std;
ifstream fin("koba.in");
ofstream fout("koba.out");
int n,i,j,k,a,m,sol,v[1005],x,y,z,c,q,w[1005],s[1005],sum,t,t1;
int sc(int x){
    return x%10;
}
int f(int x,int y,int z){
    int x1;
    int y1;
    int z1;
    int sol;
    sol=0;
    x1=y;
    y1=z;
    z1=(z+(y*x))%10;
    sol=10*sol+x1;
    sol=10*sol+y1;
    sol=10*sol+z1;
    if(v[sol]==0){
        v[sol]=1;
        q+=z1;
        w[++k]=sol;
        f(x1,y1,z1);
    }
    else{
        w[++k]=sol;
    }
}
int main(){
    fin>>n;
    k=0;
    fin>>x>>y>>z;
    x=x%10;
    y=y%10;
    z=z%10;
    sol=0;
    sol=10*sol+x;
    sol=10*sol+y;
    sol=10*sol+z;
    v[sol]=1;
    w[++k]=sol;
    q+=(x+y+z);
    f(x,y,z);
    for(i=1;i<=k;i++){
       fout<<w[i]<<"\n";
       s[i]=s[i-1]+sc(w[i]);
    }
    int k1;
    k1=k;
    for(i=1;i<=k;i++){
        if(w[i]==w[k]){
            c=i;
            break;
        }
    }
    sum+=s[c-1]+x+y;
    k-=c;
    n-=c;
    t=n/k;
    sum+=(s[k1-1]-s[c-1])*t;
    q=(n-t*k);
    for(i=c;i<=c+q-2;i++){
        sum+=sc(w[i]);
    }
    fout<<sum;
    return 0;
}