Cod sursa(job #479208)

Utilizator andrei.dAndrei Diaconeasa andrei.d Data 23 august 2010 12:45:29
Problema Rsir Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <cstdio>

#define file_in "rsir.in"
#define file_out "rsir.out"

int t0,t1,m,z,x,y,a,b;
long long a1[10000];
long long a2[10000];
long long n;

void citire()
{
	freopen(file_in,"r",stdin);
	freopen(file_out,"w",stdout);
	
	scanf("%d %d %d %d %d %d %d %d %lld", &t0,&t1,&a, &b,&x,&y,&z,&m,&n);
}

void baga()
{
	int t2;
	t2=a1[t0]+a2[t1]+z;
	while(t2>=m)
		t2-=m;
	t0=t1;
	t1=t2;
}

void solve()
{
	int i,t00,t11,nr=1;
	t0%=m;
	t1%=m;
	x%=m;
	y%=m;
	z%=m;
	a%=m;
	b%=m;
	for (i=0;i<m;++i)
	{
		a1[i]=(1LL*i*i*a+1LL*i*x)%m;
		a2[i]=(1LL*i*i*b+1LL*i*y)%m;
	}
	for (i=1;i<=n && i<=m*m;++i) baga();
	n-=m*m;
	t00=t0;
	t11=t1;
	baga();
	
	while(t00!=t0 || t11!=t1)
	{
		baga();
		nr++;
	}
	n%=nr;
	for (i=1;i<=n;++i) baga();
	
	printf("%d\n", t0);
}
		

int main()
{
	citire();
	solve();
	
	fclose(stdin);
	fclose(stdout);
	
	return 0;
	
}