Pagini recente » Cod sursa (job #1154691) | Cod sursa (job #2001804) | Cod sursa (job #56154) | Cod sursa (job #275480) | Cod sursa (job #1060016)
#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;}
s=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;
}