比赛 CSP2023-J模拟赛 评测结果 AAAAAAAAAAAAATTTTTTT
题目名称 排列变换 最终得分 65
用户昵称 运行时间 7.319 s
代码语言 C++ 内存使用 9.55 MiB
提交时间 2023-10-18 20:49:40
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,a[1000005],maxf,maxi;
bool t1=1;
int main(){
	freopen("permutrans.in","r",stdin);
	freopen("permutrans.out","w",stdout);
	scanf("%d",&n);
	for (int i=1;i<=n;i++){
		scanf("%d",&a[i]);
		if (a[i]!=i)t1=0;
		if (a[i]>=i){
			maxf++;
		}
	}
	if (t1){
		printf("%d 0",n);
	}
	else{
		for (int i=n;i>=2;i--){
			int temp=1,j=i+1,k=2;
			while(1){
				if (j>n)j=1;
				if (j==i)break;
				if (a[j]>=k)temp++;
				k++;j++;
			}
			if (maxf<temp){
				maxf=temp;
				maxi=n-i+1;
			}
		}
		printf("%d %d",maxf,maxi);
	}
	return 0;
}