70分求助!
查看原帖
70分求助!
670307
acestrong楼主2024/8/13 15:51
#include<bits/stdc++.h>
using namespace std; 

int main()
{
	int n,x;
	cin>>n>>x;
	int a[1000011]={0};
	int win[1000011]={0};
	a[1]=x;
	for(int i=2;i<=n;i++)
	{
		x=(x*3703+1047)%n+1;
		a[i]=x;
	}
	int last_x=0;
	int cnt=0;
	for(int i=1;i<=n;i++)
	{
		if(a[i]!=last_x)
		{
			win[a[i]]+=1;
			cnt=1;
			last_x=a[i];
		}
		else if(a[i]==last_x&&cnt==1)
		{
			win[a[i]]+=2;
			cnt++;
			last_x=a[i];
		}
		else if(a[i]==last_x&&cnt>=2)
		{
			win[a[i]]+=3;
			cnt++;
			last_x=a[i];
		}
	}
	sort(win+1,win+1+n);
	cout<<win[n]<<endl;
	return 0;
}
2024/8/13 15:51
加载中...