比赛 2025.12.13 评测结果 AAAAAAAAAAAAAAAAAAAA
题目名称 排列变换 最终得分 100
用户昵称 我常常追忆未来 运行时间 2.009 s
代码语言 C++ 内存使用 5.63 MiB
提交时间 2025-12-13 09:39:41
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
const int N=1e6+7;
int n,ansv,ansi;
int a[N],sum[N];
int main(){
	freopen("permutrans.in","r",stdin);
	freopen("permutrans.out","w",stdout);
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i]; 
		if(a[i]>=i){
			sum[0]++;
			sum[a[i]-i+1]--;
			sum[n-i+1]++;
			ansv++;
		}
		else{
			sum[n-i+1]++;
			sum[n-i+a[i]+1]--;
		}
	} 
	for(int i=1;i<=n;i++){
		sum[i]+=sum[i-1];
	}
	for(int i=1;i<=n;i++){
		if(sum[i]>ansv){
			ansv=sum[i];
			ansi=i;
		}
	}
	cout<<ansv<<" "<<ansi;

	return 0;
}