10827 | 2024-04-16 08:24:08 | TomaSajt | Szimmetrikus sorozat | cpp17 | Elfogadva 100/100 | 194ms | 34320 KiB |
#include <bits/stdc++.h>
#define int long long
using namespace std;
vector<vector<int>> g;
vector<int> color, parent, depth;
int get_root(int u) {
if (u == parent[u]) return u;
return parent[u] = get_root(parent[u]);
}
vector<array<int, 2>> sol;
void merge(int u, int v, bool init) {
u = get_root(u), v = get_root(v);
if (u == v) return;
if (!init) assert(color[u] != color[v]);
if (depth[u] < depth[v]) swap(u, v);
if (depth[u] == depth[v]) depth[u]++;
int c1 = min(color[u], color[v]);
int c2 = max(color[u], color[v]);
color[u] = c1;
parent[v] = u;
if (init) return;
sol.push_back({c2, c1});
}
signed main() {
ios::sync_with_stdio(0), cin.tie(0);
int n;
cin >> n;
parent.resize(n + 1);
iota(parent.begin(), parent.end(), 0);
depth.assign(n + 1, 1);
color.resize(n + 1);
map<int, int> col_map;
for (int i = 1; i <= n; i++) {
cin >> color[i];
if (col_map.count(color[i])) {
merge(col_map[color[i]], i, true);
}
else {
col_map[color[i]] = i;
}
}
for (int i = 1; i <= n; i++) {
int j = n - i + 1;
if (j <= i) break;
merge(i, j, false);
}
cout << sol.size() << endl;
for (auto [a, b] : sol) cout << a << ' ' << b << '\n';
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
subtask1 | 0/0 | ||||||
1 | Elfogadva | 3ms | 1700 KiB | ||||
2 | Elfogadva | 75ms | 14608 KiB | ||||
subtask2 | 9/9 | ||||||
3 | Elfogadva | 3ms | 2396 KiB | ||||
4 | Elfogadva | 3ms | 2492 KiB | ||||
5 | Elfogadva | 3ms | 2768 KiB | ||||
6 | Elfogadva | 3ms | 2652 KiB | ||||
7 | Elfogadva | 3ms | 2940 KiB | ||||
subtask3 | 14/14 | ||||||
8 | Elfogadva | 3ms | 2924 KiB | ||||
9 | Elfogadva | 2ms | 3004 KiB | ||||
10 | Elfogadva | 3ms | 3132 KiB | ||||
11 | Elfogadva | 3ms | 3368 KiB | ||||
12 | Elfogadva | 3ms | 3572 KiB | ||||
13 | Elfogadva | 3ms | 3660 KiB | ||||
subtask4 | 25/25 | ||||||
14 | Elfogadva | 3ms | 3660 KiB | ||||
15 | Elfogadva | 3ms | 3988 KiB | ||||
16 | Elfogadva | 4ms | 4436 KiB | ||||
17 | Elfogadva | 4ms | 4692 KiB | ||||
18 | Elfogadva | 4ms | 4472 KiB | ||||
19 | Elfogadva | 4ms | 4616 KiB | ||||
20 | Elfogadva | 4ms | 4568 KiB | ||||
21 | Elfogadva | 4ms | 4648 KiB | ||||
subtask5 | 22/22 | ||||||
22 | Elfogadva | 123ms | 28324 KiB | ||||
23 | Elfogadva | 129ms | 30376 KiB | ||||
24 | Elfogadva | 134ms | 30320 KiB | ||||
25 | Elfogadva | 119ms | 28252 KiB | ||||
26 | Elfogadva | 122ms | 28292 KiB | ||||
27 | Elfogadva | 125ms | 30476 KiB | ||||
28 | Elfogadva | 128ms | 30556 KiB | ||||
29 | Elfogadva | 115ms | 28488 KiB | ||||
30 | Elfogadva | 103ms | 28656 KiB | ||||
31 | Elfogadva | 109ms | 30744 KiB | ||||
32 | Elfogadva | 114ms | 30752 KiB | ||||
33 | Elfogadva | 97ms | 28704 KiB | ||||
34 | Elfogadva | 83ms | 28704 KiB | ||||
35 | Elfogadva | 98ms | 30904 KiB | ||||
36 | Elfogadva | 100ms | 30900 KiB | ||||
37 | Elfogadva | 86ms | 28696 KiB | ||||
subtask6 | 30/30 | ||||||
38 | Elfogadva | 3ms | 4824 KiB | ||||
39 | Elfogadva | 82ms | 17568 KiB | ||||
40 | Elfogadva | 3ms | 2396 KiB | ||||
41 | Elfogadva | 3ms | 2492 KiB | ||||
42 | Elfogadva | 3ms | 2768 KiB | ||||
43 | Elfogadva | 3ms | 2652 KiB | ||||
44 | Elfogadva | 3ms | 2940 KiB | ||||
45 | Elfogadva | 3ms | 2924 KiB | ||||
46 | Elfogadva | 2ms | 3004 KiB | ||||
47 | Elfogadva | 3ms | 3132 KiB | ||||
48 | Elfogadva | 3ms | 3368 KiB | ||||
49 | Elfogadva | 3ms | 3572 KiB | ||||
50 | Elfogadva | 3ms | 3660 KiB | ||||
51 | Elfogadva | 3ms | 3660 KiB | ||||
52 | Elfogadva | 3ms | 3988 KiB | ||||
53 | Elfogadva | 4ms | 4436 KiB | ||||
54 | Elfogadva | 4ms | 4692 KiB | ||||
55 | Elfogadva | 4ms | 4472 KiB | ||||
56 | Elfogadva | 4ms | 4616 KiB | ||||
57 | Elfogadva | 4ms | 4568 KiB | ||||
58 | Elfogadva | 4ms | 4648 KiB | ||||
59 | Elfogadva | 123ms | 28324 KiB | ||||
60 | Elfogadva | 129ms | 30376 KiB | ||||
61 | Elfogadva | 134ms | 30320 KiB | ||||
62 | Elfogadva | 119ms | 28252 KiB | ||||
63 | Elfogadva | 122ms | 28292 KiB | ||||
64 | Elfogadva | 125ms | 30476 KiB | ||||
65 | Elfogadva | 128ms | 30556 KiB | ||||
66 | Elfogadva | 115ms | 28488 KiB | ||||
67 | Elfogadva | 103ms | 28656 KiB | ||||
68 | Elfogadva | 109ms | 30744 KiB | ||||
69 | Elfogadva | 114ms | 30752 KiB | ||||
70 | Elfogadva | 97ms | 28704 KiB | ||||
71 | Elfogadva | 83ms | 28704 KiB | ||||
72 | Elfogadva | 98ms | 30904 KiB | ||||
73 | Elfogadva | 100ms | 30900 KiB | ||||
74 | Elfogadva | 86ms | 28696 KiB | ||||
75 | Elfogadva | 192ms | 34068 KiB | ||||
76 | Elfogadva | 144ms | 22648 KiB | ||||
77 | Elfogadva | 57ms | 17056 KiB | ||||
78 | Elfogadva | 137ms | 22600 KiB | ||||
79 | Elfogadva | 101ms | 17576 KiB | ||||
80 | Elfogadva | 131ms | 26284 KiB | ||||
81 | Elfogadva | 133ms | 26132 KiB | ||||
82 | Elfogadva | 142ms | 26188 KiB | ||||
83 | Elfogadva | 194ms | 34320 KiB | ||||
84 | Elfogadva | 63ms | 17120 KiB | ||||
85 | Elfogadva | 111ms | 17588 KiB | ||||
86 | Elfogadva | 144ms | 26668 KiB | ||||
87 | Elfogadva | 144ms | 26664 KiB | ||||
88 | Elfogadva | 143ms | 26792 KiB | ||||
89 | Elfogadva | 140ms | 26792 KiB |