197922025-12-23 14:02:31GergoszaboÜltetéscpp17Részben helyes 37.5/756ms768 KiB
#include <iostream>
#include <bits/stdc++.h>
using ll = long long;
using namespace std;

int main()
{
    ll n; cin >> n;
    vector<ll> v(n+1);
    vector<ll> be(n+1, 0);
    for (ll i = 1; i <= n; i++){
        cin >> v[i];
        be[v[i]] = 1;
    }
    vector<ll> ul(n+1, 0), kesz(n+1, 0);
    ll szek = 1, ans = 0;
    for (ll i = 1; i <= n; i++){
        if (be[i] == 0){
            ll guy = i;
            while (!kesz[guy]){
                ul[szek] = guy;
                kesz[guy] = 1;
                szek++;
                if (!kesz[v[guy]]) ans++;
                guy = v[guy];
            }
        }
    }
    for (ll i = 1; i <= n; i++){
        if (kesz[i] == 0){
            ll guy = i;
            while (!kesz[guy]){
                ul[szek] = guy;
                kesz[guy] = 1;
                szek++;
                if (!kesz[v[guy]]) ans++;
                guy = v[guy];
            }
        }
    }
    cout << ans << "\n";
    for (ll i = 1; i <= n; i++){
        cout << ul[i] << " ";
    }
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
2Részben helyes4ms584 KiB
subtask22.5/5
3Elfogadva1ms316 KiB
4Részben helyes1ms316 KiB
5Részben helyes1ms316 KiB
6Elfogadva1ms316 KiB
7Részben helyes1ms316 KiB
subtask32.5/5
8Részben helyes1ms316 KiB
9Részben helyes1ms316 KiB
10Részben helyes1ms324 KiB
11Részben helyes1ms508 KiB
12Részben helyes1ms388 KiB
subtask42.5/5
13Részben helyes1ms316 KiB
14Részben helyes1ms316 KiB
15Részben helyes1ms316 KiB
16Részben helyes1ms540 KiB
17Részben helyes1ms316 KiB
subtask55/10
18Részben helyes1ms316 KiB
19Részben helyes1ms316 KiB
20Részben helyes1ms316 KiB
21Részben helyes1ms316 KiB
22Részben helyes1ms316 KiB
23Részben helyes1ms612 KiB
24Részben helyes1ms316 KiB
25Részben helyes1ms316 KiB
26Részben helyes4ms564 KiB
27Részben helyes4ms564 KiB
subtask65/10
28Részben helyes2ms316 KiB
29Részben helyes2ms316 KiB
30Részben helyes2ms316 KiB
31Részben helyes3ms316 KiB
32Részben helyes3ms756 KiB
33Részben helyes4ms564 KiB
34Részben helyes4ms564 KiB
35Részben helyes4ms712 KiB
36Részben helyes4ms596 KiB
37Részben helyes4ms760 KiB
subtask720/40
38Részben helyes1ms316 KiB
39Részben helyes2ms316 KiB
40Részben helyes2ms460 KiB
41Részben helyes3ms316 KiB
42Részben helyes3ms564 KiB
43Részben helyes4ms564 KiB
44Részben helyes4ms564 KiB
45Részben helyes4ms560 KiB
46Részben helyes4ms708 KiB
47Részben helyes4ms732 KiB
48Részben helyes6ms564 KiB
49Részben helyes4ms720 KiB
50Részben helyes4ms556 KiB
51Részben helyes4ms564 KiB
52Részben helyes6ms564 KiB
53Részben helyes4ms564 KiB
54Részben helyes4ms564 KiB
55Részben helyes4ms580 KiB
56Részben helyes4ms580 KiB
57Részben helyes6ms768 KiB