zp1278_jiali.cpp

来自「浙江大学acm在线判题器代码集。 本人在浙大acm判题器上的所有代码(心血) 」· C++ 代码 · 共 61 行

CPP
61
字号
#include<fstream.h>
void main()
{
	ifstream fin("input.txt");
	ofstream fout("output.txt");
	int a,b,c,d,e,f,n,g,num[501],h,i;
	while(fin>>b>>c>>d>>a)
	{
		if(a!=0)
		{
			b=b%d;
			c=c%d;
			c=a*(b-1)+c;
			e=d;
			while(c%e!=0||d%e!=0)
				e--;
			e=d/e;
			n=1;
			/*for(f=1;f%d!=0;f=f*b+1)
			{
				if(f>d)
					f=f%d;
				n++;
			}*/
			for(f=1;n<=500;f=f*b+1)
			{
				if(f>e)
					f=f%e;
				num[n]=f;
				n++;
			}
			g=0;
			for(n=1;n<=500;n++)
				if(num[n]==0)
				{
					fout<<n<<endl;
					g=1;
					break;
				}
			if(g==0)
			{
				f=((b-1)*num[500]+1)%e;
				h=0;
				n=1;
				for(c=num[500]*b+1;h==0;c=c*f+num[500])
				{
					n+=500;
					if(c>e)
						c=c%e;
					for(i=1;i<=500;i++)
						if(c==num[i])
						{
							h=1;
							a=i;
						}
				}
				fout<<n-a<<endl;
			}
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?