172872025-06-17 12:14:24ercseferencSzimmetrikus sorozatcpp17Runtime error 48/100301ms131072 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;
            if(w==r)return 0;
            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
2Accepted123ms7144 KiB
subtask29/9
3Accepted2ms316 KiB
4Accepted1ms316 KiB
5Accepted2ms316 KiB
6Accepted2ms316 KiB
7Accepted1ms316 KiB
subtask314/14
8Accepted1ms316 KiB
9Accepted1ms316 KiB
10Accepted1ms316 KiB
11Accepted1ms316 KiB
12Accepted1ms316 KiB
13Accepted1ms316 KiB
subtask425/25
14Accepted1ms316 KiB
15Accepted2ms316 KiB
16Accepted4ms384 KiB
17Accepted4ms564 KiB
18Accepted4ms564 KiB
19Accepted3ms564 KiB
20Accepted3ms640 KiB
21Accepted2ms316 KiB
subtask50/22
22Accepted181ms9608 KiB
23Runtime error273ms131072 KiB
24Accepted256ms11744 KiB
25Accepted194ms9608 KiB
26Accepted173ms9696 KiB
27Runtime error291ms131072 KiB
28Accepted254ms13796 KiB
29Accepted184ms9704 KiB
30Accepted171ms9696 KiB
31Runtime error289ms131072 KiB
32Accepted259ms15500 KiB
33Accepted196ms9608 KiB
34Accepted180ms9700 KiB
35Runtime error280ms131072 KiB
36Accepted257ms16608 KiB
37Accepted187ms9620 KiB
subtask60/30
38Accepted1ms316 KiB
39Accepted128ms7256 KiB
40Accepted2ms316 KiB
41Accepted1ms316 KiB
42Accepted2ms316 KiB
43Accepted2ms316 KiB
44Accepted1ms316 KiB
45Accepted1ms316 KiB
46Accepted1ms316 KiB
47Accepted1ms316 KiB
48Accepted1ms316 KiB
49Accepted1ms316 KiB
50Accepted1ms316 KiB
51Accepted1ms316 KiB
52Accepted2ms316 KiB
53Accepted4ms384 KiB
54Accepted4ms564 KiB
55Accepted4ms564 KiB
56Accepted3ms564 KiB
57Accepted3ms640 KiB
58Accepted2ms316 KiB
59Accepted181ms9608 KiB
60Runtime error273ms131072 KiB
61Accepted256ms11744 KiB
62Accepted194ms9608 KiB
63Accepted173ms9696 KiB
64Runtime error291ms131072 KiB
65Accepted254ms13796 KiB
66Accepted184ms9704 KiB
67Accepted171ms9696 KiB
68Runtime error289ms131072 KiB
69Accepted259ms15500 KiB
70Accepted196ms9608 KiB
71Accepted180ms9700 KiB
72Runtime error280ms131072 KiB
73Accepted257ms16608 KiB
74Accepted187ms9620 KiB
75Accepted293ms13816 KiB
76Accepted188ms10984 KiB
77Accepted93ms4956 KiB
78Accepted186ms12264 KiB
79Accepted136ms10792 KiB
80Accepted103ms7916 KiB
81Accepted101ms7912 KiB
82Accepted101ms7912 KiB
83Accepted301ms14564 KiB
84Accepted101ms5116 KiB
85Accepted137ms10792 KiB
86Accepted105ms8160 KiB
87Accepted108ms8076 KiB
88Accepted108ms8164 KiB
89Accepted108ms8168 KiB