Cod sursa(job #2172260)

Utilizator ovidius11Stiriu Ovidius ovidius11 Data 15 martie 2018 15:50:09
Problema Koba Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include<cstdio>
int viz[1005],v[2005];
int main(){
freopen("koba.in","r",stdin);
freopen("koba.out","w",stdout);
int n,t1,t2,t3,i,u=0,begi,endi,ne;
long long sum=0;
scanf("%d%d%d%d",&n,&t1,&t2,&t3);
viz[(t1%10)*100+(t2%10)*10+(t3%10)]=1;
v[++u]=t1%10;
v[++u]=t2%10;
v[++u]=t3%10;
while(1){
ne=(v[u]+v[u-1]*v[u-2])%10;
if (viz[(v[u-1]%10)*100+(v[u]%10)*10+(ne%10)]==0)
viz[(v[u-1]%10)*100+(v[u]%10)*10+(ne%10)]=u-1;
else{
begi=viz[(v[u-1]%10)*100+(v[u]%10)*10+(ne%10)];
endi=u-2;
break;}
v[++u]=ne;}
if (n<begi){
for(i=1;i<=n;i++)
sum=sum+1LL*v[i];
printf("%lld\n",sum);}
else{
for(i=1;i<begi;i++)
sum=sum+1LL*v[i];
long long sum2=0;
for(i=begi;i<=endi;i++)
sum2=sum2+1LL*v[i];
sum=sum+sum2*((n-begi+1)/(endi-begi+1));
int lim=(n-begi+1)%(endi-begi+1);
for(i=begi;i<begi+lim;i++)
sum=sum+v[i];
printf("%lld\n",sum);}
return 0;}