比赛 CSP2023-J模拟赛 评测结果 AAAAAAAAAATTTTTTTTTT
题目名称 排列变换 最终得分 50
用户昵称 sweetD 运行时间 10.082 s
代码语言 C++ 内存使用 24.33 MiB
提交时间 2023-10-18 18:19:17
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
const int N=2e6+100;
#define ll long long
ll tot[N];
int num[N],place;
int n;
inline int check(int x){
	int ans=0;
	x--;
	for(int i=1;i<=n;i++){
		if(num[x+i]>=i)ans++;
	}
	return ans;
}
int maxx,m;
int main(){
	freopen("permutrans.in","r",stdin);
	freopen("permutrans.out","w",stdout);
	scanf("%d",&n);
	for(int i=n+1;i<=2*n;i++)scanf("%d",&num[i]);
	maxx=check(n+1);
	for(int i=0;i<n;i++){
		num[n-i]=num[n*2-i];
		m=check(n-i);
		if(m>maxx){
			maxx=max(m,maxx);
			place=i+1;
		}
	}
	printf("%d %d",maxx,place);
	return 0;
}