10801 2024. 04. 14 11:48:15 Ablablabla Szimmetrikus sorozat cpp17 Elfogadva 100/100 649ms 66356 KiB
#include <bits/stdc++.h>

using namespace std;

typedef pair<int, int> pii;

map<int, vector<int>> csucsok;
map<int, bool> bejart;
map<int, bool> bejart2;
vector<pii> ans;
vector<int> alap;

int legK(int akt){
    bejart[akt] = 1;
    int mini = akt;

    for(int x : csucsok[akt]){
        if(bejart[x]) continue;

        mini = min(mini, legK(x));
    }

    return mini;
}

void dfs(int akt, int mini){
    bejart2[akt] = 1;
    if(akt != mini){
        ans.push_back({akt, mini});
    }

    for(int x : csucsok[akt]){
        if(bejart2[x]) continue;

        dfs(x, mini);
    }
}

int main()
{
    int n;
    cin >> n;

    alap.assign(n, 0);
    for(int &x : alap){
        cin >> x;
        x--;
    }

    for(int i = 0; i < n / 2 + (n % 2); i++){
        if(alap[i] != alap[n - 1 - i]){
            csucsok[alap[i]].push_back(alap[n - 1 - i]);
            csucsok[alap[n - 1 - i]].push_back(alap[i]);
        }
    }

    for(auto &x : csucsok){
        if(bejart[x.first]) continue;

        int a = legK(x.first);
        dfs(x.first, a);
    }

    cout << ans.size() << "\n";
    for(pii x : ans){
        cout << x.first + 1 << " " << x.second + 1 << "\n";
    }
}
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 3ms 1748 KiB
2 Elfogadva 212ms 24704 KiB
subtask2 9/9
3 Elfogadva 3ms 2252 KiB
4 Elfogadva 3ms 2352 KiB
5 Elfogadva 3ms 2568 KiB
6 Elfogadva 3ms 2784 KiB
7 Elfogadva 3ms 2868 KiB
subtask3 14/14
8 Elfogadva 3ms 2920 KiB
9 Elfogadva 3ms 2920 KiB
10 Elfogadva 3ms 2916 KiB
11 Elfogadva 3ms 3044 KiB
12 Elfogadva 3ms 3052 KiB
13 Elfogadva 3ms 3300 KiB
subtask4 25/25
14 Elfogadva 3ms 3528 KiB
15 Elfogadva 4ms 3796 KiB
16 Elfogadva 6ms 4128 KiB
17 Elfogadva 7ms 4292 KiB
18 Elfogadva 6ms 4028 KiB
19 Elfogadva 6ms 3828 KiB
20 Elfogadva 6ms 4080 KiB
21 Elfogadva 4ms 3796 KiB
subtask5 22/22
22 Elfogadva 352ms 46540 KiB
23 Elfogadva 337ms 66104 KiB
24 Elfogadva 328ms 66356 KiB
25 Elfogadva 337ms 46796 KiB
26 Elfogadva 301ms 46768 KiB
27 Elfogadva 286ms 64204 KiB
28 Elfogadva 293ms 64104 KiB
29 Elfogadva 305ms 46680 KiB
30 Elfogadva 275ms 46668 KiB
31 Elfogadva 275ms 65560 KiB
32 Elfogadva 272ms 65636 KiB
33 Elfogadva 264ms 46668 KiB
34 Elfogadva 284ms 46780 KiB
35 Elfogadva 287ms 54624 KiB
36 Elfogadva 296ms 60660 KiB
37 Elfogadva 268ms 46780 KiB
subtask6 30/30
38 Elfogadva 3ms 4060 KiB
39 Elfogadva 209ms 26896 KiB
40 Elfogadva 3ms 2252 KiB
41 Elfogadva 3ms 2352 KiB
42 Elfogadva 3ms 2568 KiB
43 Elfogadva 3ms 2784 KiB
44 Elfogadva 3ms 2868 KiB
45 Elfogadva 3ms 2920 KiB
46 Elfogadva 3ms 2920 KiB
47 Elfogadva 3ms 2916 KiB
48 Elfogadva 3ms 3044 KiB
49 Elfogadva 3ms 3052 KiB
50 Elfogadva 3ms 3300 KiB
51 Elfogadva 3ms 3528 KiB
52 Elfogadva 4ms 3796 KiB
53 Elfogadva 6ms 4128 KiB
54 Elfogadva 7ms 4292 KiB
55 Elfogadva 6ms 4028 KiB
56 Elfogadva 6ms 3828 KiB
57 Elfogadva 6ms 4080 KiB
58 Elfogadva 4ms 3796 KiB
59 Elfogadva 352ms 46540 KiB
60 Elfogadva 337ms 66104 KiB
61 Elfogadva 328ms 66356 KiB
62 Elfogadva 337ms 46796 KiB
63 Elfogadva 301ms 46768 KiB
64 Elfogadva 286ms 64204 KiB
65 Elfogadva 293ms 64104 KiB
66 Elfogadva 305ms 46680 KiB
67 Elfogadva 275ms 46668 KiB
68 Elfogadva 275ms 65560 KiB
69 Elfogadva 272ms 65636 KiB
70 Elfogadva 264ms 46668 KiB
71 Elfogadva 284ms 46780 KiB
72 Elfogadva 287ms 54624 KiB
73 Elfogadva 296ms 60660 KiB
74 Elfogadva 268ms 46780 KiB
75 Elfogadva 642ms 58800 KiB
76 Elfogadva 335ms 31760 KiB
77 Elfogadva 129ms 13160 KiB
78 Elfogadva 370ms 31496 KiB
79 Elfogadva 218ms 16188 KiB
80 Elfogadva 76ms 5664 KiB
81 Elfogadva 78ms 5664 KiB
82 Elfogadva 79ms 5660 KiB
83 Elfogadva 649ms 59004 KiB
84 Elfogadva 151ms 13380 KiB
85 Elfogadva 244ms 16656 KiB
86 Elfogadva 101ms 6200 KiB
87 Elfogadva 100ms 6072 KiB
88 Elfogadva 100ms 6160 KiB
89 Elfogadva 103ms 6200 KiB