10709 2024. 04. 10 09:44:25 szil Szimmetrikus sorozat cpp17 Elfogadva 100/100 145ms 37584 KiB
#include <bits/stdc++.h>

using namespace std;
using ll = long long;

const int MAXN = 200'001;

int a[MAXN], mine;
bool vis[MAXN];
vector<int> c;
vector<int> g[MAXN];
vector<pair<int, int>> ans;

void dfs(int u) {
    vis[u] = true;
    mine = min(mine, u);
    c.emplace_back(u);
    for (int v : g[u]) {
        if (!vis[v]) {
            dfs(v);
        }
    }
}

int main() {
    ios::sync_with_stdio(0); cin.tie(0);
    int n; cin >> n;
    vector<int> comp;
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
        comp.emplace_back(a[i]);
    }
    sort(comp.begin(), comp.end());
    comp.erase(unique(comp.begin(), comp.end()), comp.end());
    for (int i = 1; i <= n; i++) a[i] = lower_bound(comp.begin(), comp.end(), a[i])-comp.begin();
    for (int i = 1; i <= n; i++) {
        if (a[i] != a[n-i+1]) {
            g[a[i]].emplace_back(a[n-i+1]);
        }
    }

    for (int i = 0; i < comp.size(); i++) {
        if (!vis[i]) {
            mine = 1e9;
            dfs(i);
            for (int j : c) {
                if (j != mine) {
                    ans.emplace_back(comp[j], comp[mine]);
                }
            }
            c.clear();
        }
    }

    cout << ans.size() << "\n";
    for (auto [a, b] : ans) cout << a << " " << b << "\n";
    return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
subtask1 0/0
1 Elfogadva 6ms 11260 KiB
2 Elfogadva 64ms 19156 KiB
subtask2 9/9
3 Elfogadva 7ms 11840 KiB
4 Elfogadva 7ms 12172 KiB
5 Elfogadva 7ms 12248 KiB
6 Elfogadva 7ms 12596 KiB
7 Elfogadva 7ms 12560 KiB
subtask3 14/14
8 Elfogadva 7ms 12400 KiB
9 Elfogadva 7ms 12400 KiB
10 Elfogadva 7ms 12656 KiB
11 Elfogadva 6ms 12876 KiB
12 Elfogadva 7ms 12824 KiB
13 Elfogadva 7ms 13080 KiB
subtask4 25/25
14 Elfogadva 6ms 13176 KiB
15 Elfogadva 7ms 13456 KiB
16 Elfogadva 8ms 13584 KiB
17 Elfogadva 8ms 13788 KiB
18 Elfogadva 8ms 13756 KiB
19 Elfogadva 8ms 13740 KiB
20 Elfogadva 7ms 14000 KiB
21 Elfogadva 7ms 14164 KiB
subtask5 22/22
22 Elfogadva 90ms 25352 KiB
23 Elfogadva 107ms 37584 KiB
24 Elfogadva 104ms 37476 KiB
25 Elfogadva 93ms 25460 KiB
26 Elfogadva 90ms 25436 KiB
27 Elfogadva 105ms 36436 KiB
28 Elfogadva 107ms 36440 KiB
29 Elfogadva 92ms 25444 KiB
30 Elfogadva 89ms 25436 KiB
31 Elfogadva 104ms 37028 KiB
32 Elfogadva 101ms 37020 KiB
33 Elfogadva 90ms 25432 KiB
34 Elfogadva 86ms 25452 KiB
35 Elfogadva 100ms 31368 KiB
36 Elfogadva 103ms 34604 KiB
37 Elfogadva 90ms 25640 KiB
subtask6 30/30
38 Elfogadva 6ms 14264 KiB
39 Elfogadva 64ms 22152 KiB
40 Elfogadva 7ms 11840 KiB
41 Elfogadva 7ms 12172 KiB
42 Elfogadva 7ms 12248 KiB
43 Elfogadva 7ms 12596 KiB
44 Elfogadva 7ms 12560 KiB
45 Elfogadva 7ms 12400 KiB
46 Elfogadva 7ms 12400 KiB
47 Elfogadva 7ms 12656 KiB
48 Elfogadva 6ms 12876 KiB
49 Elfogadva 7ms 12824 KiB
50 Elfogadva 7ms 13080 KiB
51 Elfogadva 6ms 13176 KiB
52 Elfogadva 7ms 13456 KiB
53 Elfogadva 8ms 13584 KiB
54 Elfogadva 8ms 13788 KiB
55 Elfogadva 8ms 13756 KiB
56 Elfogadva 8ms 13740 KiB
57 Elfogadva 7ms 14000 KiB
58 Elfogadva 7ms 14164 KiB
59 Elfogadva 90ms 25352 KiB
60 Elfogadva 107ms 37584 KiB
61 Elfogadva 104ms 37476 KiB
62 Elfogadva 93ms 25460 KiB
63 Elfogadva 90ms 25436 KiB
64 Elfogadva 105ms 36436 KiB
65 Elfogadva 107ms 36440 KiB
66 Elfogadva 92ms 25444 KiB
67 Elfogadva 89ms 25436 KiB
68 Elfogadva 104ms 37028 KiB
69 Elfogadva 101ms 37020 KiB
70 Elfogadva 90ms 25432 KiB
71 Elfogadva 86ms 25452 KiB
72 Elfogadva 100ms 31368 KiB
73 Elfogadva 103ms 34604 KiB
74 Elfogadva 90ms 25640 KiB
75 Elfogadva 136ms 28840 KiB
76 Elfogadva 111ms 25900 KiB
77 Elfogadva 52ms 19768 KiB
78 Elfogadva 112ms 25924 KiB
79 Elfogadva 86ms 22224 KiB
80 Elfogadva 82ms 18036 KiB
81 Elfogadva 82ms 18044 KiB
82 Elfogadva 82ms 18044 KiB
83 Elfogadva 145ms 28840 KiB
84 Elfogadva 59ms 19784 KiB
85 Elfogadva 90ms 22232 KiB
86 Elfogadva 90ms 18044 KiB
87 Elfogadva 90ms 18048 KiB
88 Elfogadva 90ms 18036 KiB
89 Elfogadva 87ms 18044 KiB