比赛 2025.12.13 评测结果 AAAAAAAAAAAAAAAAAAAA
题目名称 排列变换 最终得分 100
用户昵称 zhyn 运行时间 0.712 s
代码语言 C++ 内存使用 6.04 MiB
提交时间 2025-12-13 10:58:46
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;

#define maxn 1000005
#define inf 0x3f3f3f3f
int num[maxn],siz[maxn];
int ans=0,sum=0,u=0;
int n;

int main(){
	
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	
	freopen("permutrans.in","r",stdin);
	freopen("permutrans.out","w",stdout);
	
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>num[i];
	}
	
	for(int i=1;i<=n;i++){
		int s=num[i]-i;
		if(s>=0){
			ans++;
			siz[s+1]++;
		}
	}
	int k=n;
	sum=ans;
	
	for(int i=1;i<n;i++){
		if(num[k]>=0){
			sum++;
			siz[num[k]+i]++;
		}
		sum-=siz[i];
		if(sum>ans){
			u=i;
		}
		ans=max(ans,sum);
		k--;
	}
	
	cout<<ans<<" "<<u;
	
	
	return 0;
}