172852025-06-17 11:58:30ercseferencSzimmetrikus sorozatcpp17Runtime error 48/100296ms131072 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);
    //ifstream f("szamok.txt");
    cin.tie(0); cout.tie(0); vector<par>b;
    int n,x,y; 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;
    sort(a.begin(),a.end(), has1);
    vector<int>ures; csoportok.push_back(ures);
   for(int i=0; i<n-1; i++){
        csoportok[t].push_back(a[i].ind);
        a[i].csop=t;
        if(a[i].ert!=a[i+1].ert){
                t++;
                csoportok.push_back(ures);}}
    a[n-1].csop=t; csoportok[t].push_back(a[n-1].ind);
    sort(a.begin(),a.end(), has2);
    for(int i=0; i<n/2; i++){
        if(a[i].ert!=a[n-i-1].ert){
            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 v=csoportok[a[y].csop].size();
            int w=a[y].csop;
            for(int j=0; j<v; j++){
                csoportok[a[x].csop].push_back(csoportok[w][j]);
                a[csoportok[w][j]].ert=a[x].ert;
                a[csoportok[w][j]].csop=a[x].csop;}}}
    cout<<b.size()<<endl;
    for(int i=0; i<b.size(); i++)cout<<b[i].a<<" "<<b[i].b<<endl;
    return 0;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted1ms316 KiB
2Accepted118ms7144 KiB
subtask29/9
3Accepted2ms316 KiB
4Accepted2ms316 KiB
5Accepted2ms316 KiB
6Accepted2ms316 KiB
7Accepted1ms316 KiB
subtask314/14
8Accepted1ms316 KiB
9Accepted1ms316 KiB
10Accepted1ms316 KiB
11Accepted1ms316 KiB
12Accepted1ms316 KiB
13Accepted1ms316 KiB
subtask425/25
14Accepted1ms564 KiB
15Accepted2ms328 KiB
16Accepted4ms568 KiB
17Accepted4ms564 KiB
18Accepted4ms564 KiB
19Accepted3ms564 KiB
20Accepted3ms564 KiB
21Accepted2ms316 KiB
subtask50/22
22Accepted180ms9696 KiB
23Runtime error280ms131072 KiB
24Accepted257ms11928 KiB
25Accepted184ms9700 KiB
26Accepted172ms9708 KiB
27Runtime error296ms131072 KiB
28Accepted252ms13964 KiB
29Accepted180ms9696 KiB
30Accepted167ms9700 KiB
31Runtime error280ms131072 KiB
32Accepted257ms15332 KiB
33Accepted187ms9700 KiB
34Accepted177ms9696 KiB
35Runtime error293ms131072 KiB
36Accepted256ms16608 KiB
37Accepted188ms9612 KiB
subtask60/30
38Accepted1ms316 KiB
39Accepted126ms7144 KiB
40Accepted2ms316 KiB
41Accepted2ms316 KiB
42Accepted2ms316 KiB
43Accepted2ms316 KiB
44Accepted1ms316 KiB
45Accepted1ms316 KiB
46Accepted1ms316 KiB
47Accepted1ms316 KiB
48Accepted1ms316 KiB
49Accepted1ms316 KiB
50Accepted1ms316 KiB
51Accepted1ms564 KiB
52Accepted2ms328 KiB
53Accepted4ms568 KiB
54Accepted4ms564 KiB
55Accepted4ms564 KiB
56Accepted3ms564 KiB
57Accepted3ms564 KiB
58Accepted2ms316 KiB
59Accepted180ms9696 KiB
60Runtime error280ms131072 KiB
61Accepted257ms11928 KiB
62Accepted184ms9700 KiB
63Accepted172ms9708 KiB
64Runtime error296ms131072 KiB
65Accepted252ms13964 KiB
66Accepted180ms9696 KiB
67Accepted167ms9700 KiB
68Runtime error280ms131072 KiB
69Accepted257ms15332 KiB
70Accepted187ms9700 KiB
71Accepted177ms9696 KiB
72Runtime error293ms131072 KiB
73Accepted256ms16608 KiB
74Accepted188ms9612 KiB
75Accepted279ms13792 KiB
76Accepted185ms10976 KiB
77Accepted93ms5036 KiB
78Accepted184ms12272 KiB
79Accepted125ms11040 KiB
80Accepted94ms7916 KiB
81Accepted93ms7912 KiB
82Accepted96ms7912 KiB
83Accepted289ms14560 KiB
84Accepted94ms5292 KiB
85Accepted133ms11040 KiB
86Accepted100ms8160 KiB
87Accepted101ms8172 KiB
88Accepted101ms8164 KiB
89Accepted100ms8160 KiB