172152025-06-03 16:23:04ercseferencSzimmetrikus sorozatcpp17Futási hiba 48/100314ms131072 KiB
#include <bits/stdc++.h>
using namespace std;

struct par {
    int a, b;
};

struct adatszam {
    int ert, ind, csop;
};

bool has1(adatszam m, adatszam n) {
    return m.ert < n.ert;
}

bool has2(adatszam m, adatszam n) {
    return m.ind < n.ind;
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
    vector<par> b;
    int n;
    cin >> n;
    vector<adatszam> a(n);
    for (int i = 0; i < n; i++) {
        cin >> a[i].ert;
        a[i].ind = i;
    }

    vector<vector<int>> csoportok;
    int t = 0;

    if (n > 0) {
        sort(a.begin(), a.end(), has1);
        csoportok.push_back(vector<int>());
        csoportok[0].push_back(a[0].ind);
        a[0].csop = 0;

        for (int i = 1; i < n; i++) {
            if (a[i].ert != a[i-1].ert) {
                t++;
                csoportok.push_back(vector<int>());
            }
            csoportok[t].push_back(a[i].ind);
            a[i].csop = t;
        }
    }

    sort(a.begin(), a.end(), has2);

    for (int i = 0; i < n/2; i++) {
        if (a[i].ert != a[n-i-1].ert) {
            int x, y;
            if (a[i].ert > a[n-i-1].ert) {
                x = n-i-1;
                y = i;
            } else {
                x = i;
                y = n-i-1;
            }
            par q;
            q.a = a[y].ert;
            q.b = a[x].ert;
            b.push_back(q);

            int w = a[y].csop;
            if (w != a[x].csop) {
                int target_group = a[x].csop;
                int size_w = csoportok[w].size();
                for (int j = 0; j < size_w; j++) {
                    int idx = csoportok[w][j];
                    a[idx].ert = a[x].ert;
                    a[idx].csop = target_group;
                    csoportok[target_group].push_back(idx);
                }
                csoportok[w].clear();
            }
        }
    }

    cout << b.size() << endl;
    for (int i = 0; i < b.size(); i++) {
        cout << b[i].a << " " << b[i].b << endl;
    }

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
2Elfogadva115ms7144 KiB
subtask29/9
3Elfogadva2ms316 KiB
4Elfogadva2ms316 KiB
5Elfogadva2ms316 KiB
6Elfogadva2ms508 KiB
7Elfogadva1ms456 KiB
subtask314/14
8Elfogadva1ms316 KiB
9Elfogadva1ms356 KiB
10Elfogadva1ms316 KiB
11Elfogadva1ms316 KiB
12Elfogadva1ms500 KiB
13Elfogadva1ms544 KiB
subtask425/25
14Elfogadva1ms316 KiB
15Elfogadva2ms316 KiB
16Elfogadva4ms564 KiB
17Elfogadva4ms564 KiB
18Elfogadva4ms564 KiB
19Elfogadva3ms564 KiB
20Elfogadva3ms564 KiB
21Elfogadva2ms316 KiB
subtask50/22
22Elfogadva180ms9704 KiB
23Futási hiba314ms131072 KiB
24Elfogadva254ms12000 KiB
25Elfogadva185ms9696 KiB
26Elfogadva171ms9696 KiB
27Futási hiba294ms131072 KiB
28Elfogadva240ms13968 KiB
29Elfogadva171ms9608 KiB
30Elfogadva166ms9696 KiB
31Futási hiba298ms131072 KiB
32Elfogadva254ms15328 KiB
33Elfogadva189ms9612 KiB
34Elfogadva179ms9612 KiB
35Futási hiba296ms131072 KiB
36Elfogadva241ms16608 KiB
37Elfogadva172ms9684 KiB
subtask60/30
38Elfogadva1ms320 KiB
39Elfogadva123ms7144 KiB
40Elfogadva2ms316 KiB
41Elfogadva2ms316 KiB
42Elfogadva2ms316 KiB
43Elfogadva2ms508 KiB
44Elfogadva1ms456 KiB
45Elfogadva1ms316 KiB
46Elfogadva1ms356 KiB
47Elfogadva1ms316 KiB
48Elfogadva1ms316 KiB
49Elfogadva1ms500 KiB
50Elfogadva1ms544 KiB
51Elfogadva1ms316 KiB
52Elfogadva2ms316 KiB
53Elfogadva4ms564 KiB
54Elfogadva4ms564 KiB
55Elfogadva4ms564 KiB
56Elfogadva3ms564 KiB
57Elfogadva3ms564 KiB
58Elfogadva2ms316 KiB
59Elfogadva180ms9704 KiB
60Futási hiba314ms131072 KiB
61Elfogadva254ms12000 KiB
62Elfogadva185ms9696 KiB
63Elfogadva171ms9696 KiB
64Futási hiba294ms131072 KiB
65Elfogadva240ms13968 KiB
66Elfogadva171ms9608 KiB
67Elfogadva166ms9696 KiB
68Futási hiba298ms131072 KiB
69Elfogadva254ms15328 KiB
70Elfogadva189ms9612 KiB
71Elfogadva179ms9612 KiB
72Futási hiba296ms131072 KiB
73Elfogadva241ms16608 KiB
74Elfogadva172ms9684 KiB
75Elfogadva275ms13924 KiB
76Elfogadva180ms10984 KiB
77Elfogadva87ms5036 KiB
78Elfogadva180ms12264 KiB
79Elfogadva128ms10972 KiB
80Elfogadva93ms7912 KiB
81Elfogadva93ms7912 KiB
82Elfogadva96ms7912 KiB
83Elfogadva291ms14560 KiB
84Elfogadva93ms5292 KiB
85Elfogadva129ms11040 KiB
86Elfogadva100ms8264 KiB
87Elfogadva101ms8160 KiB
88Elfogadva101ms8264 KiB
89Elfogadva101ms8276 KiB