比赛 CSP2023-J模拟赛 评测结果 AAAAAAAAAAAAATTTTTTT
题目名称 排列变换 最终得分 65
用户昵称 袁书杰 运行时间 7.389 s
代码语言 C++ 内存使用 12.84 MiB
提交时间 2023-10-18 21:11:50
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,p[1000005],pos[1000005],ans,f;
bool flag=true;
int main(){
	freopen("permutrans.in","r",stdin);
	freopen("permutrans.out","w",stdout);
	ios::sync_with_stdio(false);
	cin.tie(0),cout.tie(0);
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>p[i];
		if(p[i]!=i){
			flag=false;
		}
		pos[i]=i;
	}
	if(flag){
		cout<<n<<" 0";
		return 0;
	}
	for(int i=1;i<=n;i++){
		int minn=0;
		for(int j=1;j<=n;j++){
			if(p[pos[j]]>=j){
				minn++;
			}
		}
		if(minn>ans){
			ans=minn;
			f=i-1;
		}
		for(int j=1;j<=n;j++){
			pos[j]--;
			if(pos[j]==0){
				pos[j]=n;
			}
		}
	}
	cout<<ans<<" "<<f;
	return 0;
}