243282026-02-09 14:42:33PKBÜltetéscpp17Hibás válasz 10/754ms568 KiB
#include <bits/stdc++.h>
using namespace std;

int n;
vector<int> s;
vector<int> state;   // 0 = nem látogatot, 1 = látogatjuk, 2 = megvan


void dfs(int u, int &cycles) {
    state[u] = 1;
    int v = s[u];

    if (state[v] == 0) {
        dfs(v, cycles);
    } else if (state[v] == 1) {
        cycles++;
    }

    state[u] = 2;
}

int count_cycles() {
    int cycles = 0;
    for (int i = 1; i <= n; i++) {
        if (state[i] == 0) {
            dfs(i, cycles);
        }
    }
    return cycles;
}


void print_seating() {
    for (int i = 1; i <= n; i++) {
        cout << i << " ";
    }
    cout << "\n";
}


int main() {
    cin >> n;
    s.resize(n + 1);
    state.assign(n + 1, 0);

    for (int i = 1; i <= n; i++) {
        cin >> s[i];
    }

    int cycles = count_cycles();
    int M = n - cycles;

    cout << M << "\n";
    print_seating();
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Hibás válasz1ms500 KiB
2Hibás válasz4ms316 KiB
subtask20/5
3Hibás válasz1ms500 KiB
4Hibás válasz1ms316 KiB
5Hibás válasz1ms316 KiB
6Részben helyes1ms316 KiB
7Részben helyes1ms316 KiB
subtask30/5
8Hibás válasz1ms316 KiB
9Hibás válasz1ms316 KiB
10Hibás válasz1ms500 KiB
11Hibás válasz1ms368 KiB
12Hibás válasz1ms328 KiB
subtask40/5
13Hibás válasz1ms552 KiB
14Hibás válasz1ms316 KiB
15Hibás válasz1ms508 KiB
16Hibás válasz1ms316 KiB
17Hibás válasz1ms316 KiB
subtask55/10
18Részben helyes1ms316 KiB
19Részben helyes1ms316 KiB
20Részben helyes2ms316 KiB
21Részben helyes1ms316 KiB
22Részben helyes1ms316 KiB
23Részben helyes1ms316 KiB
24Részben helyes1ms316 KiB
25Részben helyes1ms316 KiB
26Részben helyes4ms472 KiB
27Részben helyes4ms476 KiB
subtask65/10
28Részben helyes2ms316 KiB
29Részben helyes2ms316 KiB
30Részben helyes3ms500 KiB
31Részben helyes3ms508 KiB
32Részben helyes3ms316 KiB
33Részben helyes3ms564 KiB
34Részben helyes3ms564 KiB
35Részben helyes4ms568 KiB
36Részben helyes4ms564 KiB
37Részben helyes4ms564 KiB
subtask70/40
38Hibás válasz2ms316 KiB
39Hibás válasz2ms508 KiB
40Hibás válasz3ms316 KiB
41Hibás válasz3ms316 KiB
42Hibás válasz3ms316 KiB
43Hibás válasz3ms480 KiB
44Hibás válasz4ms316 KiB
45Hibás válasz4ms508 KiB
46Hibás válasz4ms316 KiB
47Hibás válasz4ms316 KiB
48Hibás válasz4ms316 KiB
49Hibás válasz4ms316 KiB
50Hibás válasz4ms472 KiB
51Hibás válasz4ms316 KiB
52Hibás válasz4ms316 KiB
53Hibás válasz4ms564 KiB
54Hibás válasz4ms500 KiB
55Hibás válasz4ms408 KiB
56Hibás válasz4ms508 KiB
57Hibás válasz4ms512 KiB