172862025-06-17 12:12:08ercseferencSzimmetrikus sorozatcpp17Runtime error 48/100300ms131072 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,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;
            int r=a[x].csop;
            int u=a[x].ert;
            for(int j=0; j<v; j++){
                csoportok[r].push_back(csoportok[w][j]);
                a[csoportok[w][j]].ert=u;
                a[csoportok[w][j]].csop=r;}
            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;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted1ms316 KiB
2Accepted116ms7144 KiB
subtask29/9
3Accepted2ms316 KiB
4Accepted1ms316 KiB
5Accepted2ms316 KiB
6Accepted2ms316 KiB
7Accepted1ms316 KiB
subtask314/14
8Accepted1ms508 KiB
9Accepted1ms316 KiB
10Accepted1ms316 KiB
11Accepted1ms508 KiB
12Accepted1ms316 KiB
13Accepted1ms316 KiB
subtask425/25
14Accepted1ms316 KiB
15Accepted2ms484 KiB
16Accepted4ms564 KiB
17Accepted4ms616 KiB
18Accepted4ms564 KiB
19Accepted3ms512 KiB
20Accepted3ms564 KiB
21Accepted2ms460 KiB
subtask50/22
22Accepted184ms9612 KiB
23Runtime error291ms131072 KiB
24Accepted256ms11916 KiB
25Accepted187ms9620 KiB
26Accepted172ms9696 KiB
27Runtime error268ms131072 KiB
28Accepted248ms13872 KiB
29Accepted177ms9696 KiB
30Accepted171ms9612 KiB
31Runtime error284ms131072 KiB
32Accepted256ms15500 KiB
33Accepted190ms9700 KiB
34Accepted179ms9708 KiB
35Runtime error300ms131072 KiB
36Accepted256ms16612 KiB
37Accepted180ms9692 KiB
subtask60/30
38Accepted1ms316 KiB
39Accepted123ms7148 KiB
40Accepted2ms316 KiB
41Accepted1ms316 KiB
42Accepted2ms316 KiB
43Accepted2ms316 KiB
44Accepted1ms316 KiB
45Accepted1ms508 KiB
46Accepted1ms316 KiB
47Accepted1ms316 KiB
48Accepted1ms508 KiB
49Accepted1ms316 KiB
50Accepted1ms316 KiB
51Accepted1ms316 KiB
52Accepted2ms484 KiB
53Accepted4ms564 KiB
54Accepted4ms616 KiB
55Accepted4ms564 KiB
56Accepted3ms512 KiB
57Accepted3ms564 KiB
58Accepted2ms460 KiB
59Accepted184ms9612 KiB
60Runtime error291ms131072 KiB
61Accepted256ms11916 KiB
62Accepted187ms9620 KiB
63Accepted172ms9696 KiB
64Runtime error268ms131072 KiB
65Accepted248ms13872 KiB
66Accepted177ms9696 KiB
67Accepted171ms9612 KiB
68Runtime error284ms131072 KiB
69Accepted256ms15500 KiB
70Accepted190ms9700 KiB
71Accepted179ms9708 KiB
72Runtime error300ms131072 KiB
73Accepted256ms16612 KiB
74Accepted180ms9692 KiB
75Accepted284ms13796 KiB
76Accepted186ms11008 KiB
77Accepted93ms4956 KiB
78Accepted180ms12264 KiB
79Accepted128ms10960 KiB
80Accepted93ms7912 KiB
81Accepted96ms7912 KiB
82Accepted93ms7912 KiB
83Accepted272ms14564 KiB
84Accepted92ms5308 KiB
85Accepted133ms10968 KiB
86Accepted100ms8160 KiB
87Accepted100ms8164 KiB
88Accepted101ms8164 KiB
89Accepted101ms8164 KiB