1 条题解

  • 0
    @ 2026-6-12 21:09:52

    #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
    上传者