Cod sursa(job #1060015)

Utilizator cristibogdanPatrascu Cristian cristibogdan Data 17 decembrie 2013 14:42:10
Problema Koba Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <fstream>

using namespace std;
ifstream f("koba.in");
ofstream g ("koba.out");
int  s,s1,t1,t2,t3,nr,n,a[1000001],v[1001],k,q,i,t,ok;
int main()
{f>>n>>t1>>t2>>t3;
a[1]=t1%10;
a[2]=t2%10;
a[3]=t3%10;
v[a[3]*100+a[2]*10+a[1]]=3;
ok=0;
s=t1%10+t2%10+t3%10;
for(i=4;i<=n;i++){
    t=t3%10+(t2%10)*(t1%10);
    s=s+t%10;
    t1=t2%10;
    t2=t3%10;
    t3=t%10;
    a[i]=t3;
    q=t3*100+t2*10+t1;
    if(v[q]!=0){

      ok=1;
        break;
    }
    v[q]=i;
}
if(ok==0){
    g<<s;
    return 0;}
//calculam in s termenii ce nu fac parte din perioada
       for(int j=1;j<=v[q]-3;j++)
         s=s+a[j];
      // actualizez n
      n=n-v[q]+3;
      //nr de termeni perioada
      k=i-v[q];
      //calcuma suma din perioada
      for(int j=v[q]-2;j<i-2;j++)
       s1=s1+a[j];
     //cate perioade sunt
     nr=n/k;
     s=s+s1*nr;
     //actualizez nr
     nr=n%k;
     int j=v[q]-2;
     while(nr!=0)    {
       s=s+a[j];
       j++;
       nr--;
     }
     g<<s;
    return 0;
}