| 比赛 |
2025.12.13 |
评测结果 |
AAAAAAAAAAAAAAAAAAAA |
| 题目名称 |
排列变换 |
最终得分 |
100 |
| 用户昵称 |
梦那边的美好ME |
运行时间 |
0.803 s |
| 代码语言 |
C++ |
内存使用 |
7.62 MiB |
| 提交时间 |
2025-12-13 09:59:29 |
显示代码纯文本
#include<iostream>
using namespace std;
#define ll long long
ll n;
ll p[1100000],d[1100000];
ll s,maxn,ans;
ll r,maxm,rr,l2,r2;
int main(){
freopen("permutrans.in","r",stdin);
freopen("permutrans.out","w",stdout);
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
cin>>n;
for(int i=0;i<n;i++) cin>>p[i];
for(int i=0;i<n;i++){
r=p[i]-1-i;
maxm=n-1-i;
rr=min(r,maxm);
if(rr>=0){
d[0]++;
d[rr+1]--;
}
l2=n-i;
r2=p[i]-1-i+n;
if(l2<=r2 && l2<n){
int rr=min(r2,n-1);
d[l2]++;
d[rr+1]--;
}
}
for(int i=0;i<n;i++){
s+=d[i];
if(s>maxn){
maxn=s;
ans=i;
}
}
cout<<maxn<<" "<<ans<<endl;
return 0;
}