Pagini recente » Cod sursa (job #2666420) | Cod sursa (job #2163787) | Cod sursa (job #1221793) | Cod sursa (job #673765) | Cod sursa (job #470430)
Cod sursa(job #470430)
#include <fstream>
using namespace std;
struct koba{short int a,b,c;};
koba v[1<<10];
bool use[10][10][10];
int d,n,x,y,z;
ifstream in("koba.in");
ofstream out("koba.out");
inline bool cmp(koba a,koba b)
{
return a.a==b.a && a.b==b.b && a.c==b.c;
}
void search()
{
int i,j;
v[1].a=x;v[1].b=y;v[1].c=z;
use[x][y][z]=true;
for (i=2;i<1000;i++)
{
v[i].a=(v[i-1].a+v[i-1].b*v[i-1].c)%10;
v[i].b=v[i-1].a;
v[i].c=v[i-1].b;
if (use[v[i].a][v[i].b][v[i].c])
{
for (j=1;j<i;j++)
if (cmp(v[i],v[j]))
{
x=j;
y=i-1;
z=i-j;
return;
}
}
use[v[i].a][v[i].b][v[i].c]=true;
}
}
int main()
{
int i,q;
long long s=0;
in>>n>>z>>y>>x;
x%=10;y%=10;z%=10;
s=z+y*(n>1);n-=2;
search();
if (n>y)
{
q=(n-x)/z;
n-=q*z;
for (i=x;i<=y;i++)
s+=q*(v[i].a);
}
for (i=1;i<=n;i++)
s+=v[i].a;
out<<s<<"\n";
return 0;
}