比赛 CSP2023-J模拟赛 评测结果 C
题目名称 排列变换 最终得分 0
用户昵称 XSX 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2023-10-18 19:52:57
显示代码纯文本
#include<iostream>
using namespace std;

const int MAXN=1e6+5;
int n,ans,MAXN;
int a[MAXN];

inline int read(){
  	int x=0,w=1;
  	char ch=0;
  	while(ch<'0' || ch>'9'){ 
    	if(ch=='-') w=-1;
    	ch=getchar();
  	}
  	while(ch>='0' && ch<='9'){
    	x=x*10+(ch-'0');
    	ch=getchar();
  	}
  	return x*w;
}

int main(){
    freopen("permutrans.in","r",stdin);
    freopen("permutrans.out","w",stdout);
    n=read();
    for(int i=1;i<=n;i++){
    	a[i]=read();
    	a[i+n] = a[i];
    	if(a[i]>=i) ans++;
	}
	for(int i=2*n;i>n;i--){
		int now_MAXN=0;
		int index=1;
		for(int j=i-n+1;j<=i;j++){
			if(a[j]>=index) now_MAXN++;
			index++;
		}
		if(now_MAXN>ans){
			ans=now_MAXN;
			MAXN=2*n-i;
		}
	}
	cout<<ans<<" "<<MAXN<<"\n";
}