60pts求助
查看原帖
60pts求助
1247040
V_HAPPY666楼主2024/8/1 14:51
#include <iostream>
using namespace std;

int main()
{
	int cnt2[1000001];
	int a[1000001];
	int x[1000001];
	int n;
	cin>>n>>x[0];
	int pr=0;
	int max=-10000;
	int maxi=-10000;
	int cnt=1;
	for(int i=0;i<n;i++)
	{
		cnt2[i]=0;
	}
	for(int i=0;i<n;i++)
	{
		x[i+1]=((x[i]*3703+1047)%n)+1;
		a[i]=x[i];
	}	
	for(int i=0;i<=n;i++)
	{
		if(a[i]==pr)
		{
			cnt++;
		}
		else
		{
			for(int j=cnt;j>=1;j--)
			{
				cnt2[pr]=cnt2[pr]+j;
			}
			cnt=1;
		}
		pr=a[i];
	}
	for(int i=0;i<n;i++)
	{
		if(max<cnt2[i])
		{
			max=cnt2[i];
			maxi=i;
		}
	}
	cout<<max;
	return 0;
}
2024/8/1 14:51
加载中...