1 条题解
-
0
#include #include #include using namespace std;
int main() { ios::sync_with_stdio(false); cin.tie(nullptr);
int N; cin >> N; vector<int> p(N), pos(N); for (int i = 0; i < N; ++i) { cin >> p[i]; pos[p[i]] = i; } vector<int> cnt(N, 0); for (int i = 0; i < N; ++i) { int pi = pos[i]; // 计算三个k int k1 = (i - 1 - pi) % N; int k2 = (i - pi) % N; int k3 = (i + 1 - pi) % N; // 转成非负 if (k1 < 0) k1 += N; if (k2 < 0) k2 += N; if (k3 < 0) k3 += N; cnt[k1]++; cnt[k2]++; cnt[k3]++; } int ans = *max_element(cnt.begin(), cnt.end()); cout << ans << endl; return 0;}
- 1
信息
- ID
- 24
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 3
- 标签
- 递交数
- 175
- 已通过
- 28
- 上传者