107092024-04-10 09:44:25szilSzimmetrikus sorozatcpp17Elfogadva 100/100145ms37584 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ÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva6ms11260 KiB
2Elfogadva64ms19156 KiB
subtask29/9
3Elfogadva7ms11840 KiB
4Elfogadva7ms12172 KiB
5Elfogadva7ms12248 KiB
6Elfogadva7ms12596 KiB
7Elfogadva7ms12560 KiB
subtask314/14
8Elfogadva7ms12400 KiB
9Elfogadva7ms12400 KiB
10Elfogadva7ms12656 KiB
11Elfogadva6ms12876 KiB
12Elfogadva7ms12824 KiB
13Elfogadva7ms13080 KiB
subtask425/25
14Elfogadva6ms13176 KiB
15Elfogadva7ms13456 KiB
16Elfogadva8ms13584 KiB
17Elfogadva8ms13788 KiB
18Elfogadva8ms13756 KiB
19Elfogadva8ms13740 KiB
20Elfogadva7ms14000 KiB
21Elfogadva7ms14164 KiB
subtask522/22
22Elfogadva90ms25352 KiB
23Elfogadva107ms37584 KiB
24Elfogadva104ms37476 KiB
25Elfogadva93ms25460 KiB
26Elfogadva90ms25436 KiB
27Elfogadva105ms36436 KiB
28Elfogadva107ms36440 KiB
29Elfogadva92ms25444 KiB
30Elfogadva89ms25436 KiB
31Elfogadva104ms37028 KiB
32Elfogadva101ms37020 KiB
33Elfogadva90ms25432 KiB
34Elfogadva86ms25452 KiB
35Elfogadva100ms31368 KiB
36Elfogadva103ms34604 KiB
37Elfogadva90ms25640 KiB
subtask630/30
38Elfogadva6ms14264 KiB
39Elfogadva64ms22152 KiB
40Elfogadva7ms11840 KiB
41Elfogadva7ms12172 KiB
42Elfogadva7ms12248 KiB
43Elfogadva7ms12596 KiB
44Elfogadva7ms12560 KiB
45Elfogadva7ms12400 KiB
46Elfogadva7ms12400 KiB
47Elfogadva7ms12656 KiB
48Elfogadva6ms12876 KiB
49Elfogadva7ms12824 KiB
50Elfogadva7ms13080 KiB
51Elfogadva6ms13176 KiB
52Elfogadva7ms13456 KiB
53Elfogadva8ms13584 KiB
54Elfogadva8ms13788 KiB
55Elfogadva8ms13756 KiB
56Elfogadva8ms13740 KiB
57Elfogadva7ms14000 KiB
58Elfogadva7ms14164 KiB
59Elfogadva90ms25352 KiB
60Elfogadva107ms37584 KiB
61Elfogadva104ms37476 KiB
62Elfogadva93ms25460 KiB
63Elfogadva90ms25436 KiB
64Elfogadva105ms36436 KiB
65Elfogadva107ms36440 KiB
66Elfogadva92ms25444 KiB
67Elfogadva89ms25436 KiB
68Elfogadva104ms37028 KiB
69Elfogadva101ms37020 KiB
70Elfogadva90ms25432 KiB
71Elfogadva86ms25452 KiB
72Elfogadva100ms31368 KiB
73Elfogadva103ms34604 KiB
74Elfogadva90ms25640 KiB
75Elfogadva136ms28840 KiB
76Elfogadva111ms25900 KiB
77Elfogadva52ms19768 KiB
78Elfogadva112ms25924 KiB
79Elfogadva86ms22224 KiB
80Elfogadva82ms18036 KiB
81Elfogadva82ms18044 KiB
82Elfogadva82ms18044 KiB
83Elfogadva145ms28840 KiB
84Elfogadva59ms19784 KiB
85Elfogadva90ms22232 KiB
86Elfogadva90ms18044 KiB
87Elfogadva90ms18048 KiB
88Elfogadva90ms18036 KiB
89Elfogadva87ms18044 KiB