2381.txt

来自「北大ACM题目例程 详细的解答过程 程序实现 算法分析」· 文本 代码 · 共 41 行

TXT
41
字号
 

#include <stdio.h>
#include <string.h>

char b[16000002];
int main()
{
	unsigned long a,m,c,r;
	memset(b,0,sizeof(b));
	scanf("%lu%lu%lu%lu",&a,&c,&m,&r);
	while(1)
	{
		r=(a*r+c)%m;
		if(b[r])
			break;
		else b[r]=1;
	}
	long i,max=0,last=0;
	for(i=0;i<16000002;i++)
		if(b[i])
			break;
	last=i++;
	for(;i<16000002;i++)
	{
		if(b[i])
		{
//			printf("%lu ",i);
			if(i-last>max)
			{
				max=i-last;
			}
			last=i;
		}
	}
	printf("%lu",max);
	return 0;
}


⌨️ 快捷键说明

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