我觉得我的思路没有问题,但是他就是WA了3个点。
下大分。
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
void fastio(const char *infile, const char *outfile) {
if (infile) freopen(infile, "r", stdin);
if (outfile) freopen(outfile, "w", stdout);
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
}
int n, q[200010], p[200010];
int del[200010], add[200010];
int main() {
fastio(nullptr, nullptr);
cin >> n;
for (int i = 0; i < n; i++) cin >> q[i];
for (int i = 0; i < n; i++) p[q[i]] = i;
for (int i = 0; i < n; i++) {
if ((i - 1 + n) % n == p[i]) {
add[0]++;
del[3]++;
} else if (i == p[i]) {
add[0]++;
del[2]++;
} else if ((i + 1) % n == p[i]) {
add[0]++;
del[1]++;
} else {
add[(p[i] + n - i) % n - 1]++;
del[(p[i] + n - i) % n + 2]++;
}
}
int now = 0, ans = 0;
for (int i = 0; i < n; i++) {
now -= del[i];
now += add[i];
ans = max(ans, now);
}
cout << ans << endl;
return 0;
}