1 条题解

  • 0
    @ 2025-4-13 23:29:44

    C++代码

    #include <iostream>
    #include <vector>
    using namespace std;
    
    int main() {
        int n;
        cin >> n;
        vector<int> p(n);
        for (int i = 0; i < n; ++i) {
            cin >> p[i];
        }
        
        vector<int> result(n);
        
        for (int start = 1; start <= n; ++start) {
            vector<int> count(n, 0);
            int current = start;
            while (true) {
                int index = current - 1;
                ++count[index];
                if (count[index] == 2) {
                    result[start - 1] = current;
                    break;
                }
                current = p[index];
            }
        }
        
        for (int num : result) {
            cout << num << " ";
        }
        cout << endl;
        
        return 0;
    }
    
    

    信息

    ID
    2760
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者