比赛 CSP2023-J模拟赛 评测结果 AAAAAAAAAAAAATTTTTTT
题目名称 排列变换 最终得分 65
用户昵称 PCT 运行时间 7.217 s
代码语言 C++ 内存使用 12.84 MiB
提交时间 2023-10-18 18:57:52
显示代码纯文本
#include<iostream>
using namespace std;
const int N=2e6+6;
int n,a[N];
int l,r; //两个指针 
int f=-1e9,pos;
bool flag;
int main(){
	freopen("permutrans.in","r",stdin);
	freopen("permutrans.out","w",stdout);
	cin.tie(0)->sync_with_stdio(0);
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		if(a[i]!=i){
			flag=1;
		}
	}
	if(flag==0){
		cout<<n<<" 0"; return 0;
	}
	for(int i=n+1;i<=2*n;i++){
		a[i]=a[i-n];
	}
	l=n+1,r=2*n;
	for(;l>=1;l--,r--){
		int num=0;
		for(int i=l;i<=r;i++){  
			if(a[i]>=i-l+1){
				num++;
			}
		}
		if(num>f){
			f=num,pos=n+1-l;
		}
	}
	cout<<f<<" "<<pos;
return 0;
}