记录编号 |
583626 |
评测结果 |
AAAAAAAAAAAAAAAAAAAA |
题目名称 |
排列变换 |
最终得分 |
100 |
用户昵称 |
yrtiop |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.647 s |
提交时间 |
2023-10-19 20:18:18 |
内存使用 |
6.68 MiB |
显示代码纯文本
#include <bits/stdc++.h>
#define pb emplace_back
#define fir first
#define sec second
using i64 = long long;
using pii = std::pair<int, int>;
constexpr int maxn = 1e6 + 5;
int n, a[maxn], sum[maxn];
int main() {
freopen("permutrans.in", "r", stdin);
freopen("permutrans.out", "w", stdout);
scanf("%d", &n);
int ans = 0, pos = 0;
for(int i = 1;i <= n;++ i) {
scanf("%d", &a[i]);
if(a[i] >= i) {
++ sum[0];
-- sum[a[i] - i + 1];
++ sum[n - i + 1];
++ ans;
} 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] > ans) ans = sum[i], pos = i;
printf("%d %d\n", ans, pos);
return 0;
}