Pagini recente » Cod sursa (job #1216542) | Cod sursa (job #1133632) | Cod sursa (job #1338830) | Cod sursa (job #2242291) | Cod sursa (job #972593)
Cod sursa(job #972593)
#include<fstream>
using namespace std;
int n,lg,v[1010],sum[1010],poz[1010],sumper;
long long sol;
int main()
{
int i=4,x;
ifstream fin("koba.in");
fin>>n>>v[1]>>v[2]>>v[3];
fin.close();
v[1]%=10; v[2]%=10; v[3]%=10;
poz[v[1]]=1; sum[1]=v[1];
poz[v[1]*10+v[2]]=2; sum[2]=v[1]+v[2];
poz[v[1]*100+v[2]*10+v[3]]=3; sum[3]=v[1]+v[2]+v[3];
while(1)
{
v[i]=(v[i-1]+v[i-2]*v[i-3])%10;
sum[i]=sum[i-1]+v[i];
x=v[i-2]*100+v[i-1]*10+v[i];
if(poz[x]==0)
poz[x]=i;
else
{
lg=i-poz[x];
sumper=sum[i]-sum[poz[x]];
sol=1LL*sum[poz[x]-1];
sol+=(1LL*(n-poz[x]+1)/lg)*sumper;
n=(n-poz[x]+1)%lg;
sol+=1LL*(sum[poz[x]+n-1]-sum[poz[x]-1]);
break;
}
i++;
}
ofstream fout("koba.out");
fout<<sol<<"\n";
fout.close();
return 0;
}