Cod sursa(job #119703)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 2 ianuarie 2008 20:10:32
Problema Rsir Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<stdio.h>
long long int t0,t1,t2,t3,a,b,c,d,e,v1[7002],v2[7002],n,m,i;
int main()
{
	FILE *f,*g;
	f=fopen("rsir.in","r");
	g=fopen("rsir.out","w");
	fscanf(f,"%lld%lld",&t0,&t1);
	fscanf(f,"%lld%lld",&a,&b);
	fscanf(f,"%lld%lld%lld",&c,&d,&e);
	fscanf(f,"%lld%lld",&m,&n);
	a=a%m;b=b%m;
	c=c%m;d=d%m;e=e%m;
	t0=t0%m;
	t1=t1%m;
	for(i=0;i<m;i++)
	{ v1[i]=(a*i*i+c*i+e)%m;
	  v2[i]=(b*i*i+d*i)%m;
	}
	for(i=1;i<=n/2;i++)
	{
	   t2=v1[t0]+v2[t1];while(t2>=m)t2-=m;
	   t3=v1[t1]+v2[t2];while(t3>=m)t3-=m;
	   t0=t2;
	   t1=t3;
	}
	t0=t0%m;t1=t1%m;
	if(n%2)	fprintf(g,"%lld\n",t1);
	else fprintf(g,"%lld\n",t0);
	fcloseall();
	return 0;
}