172872025-06-17 12:14:24ercseferencSzimmetrikus sorozatcpp17Futási hiba 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
2Elfogadva123ms7144 KiB
subtask29/9
3Elfogadva2ms316 KiB
4Elfogadva1ms316 KiB
5Elfogadva2ms316 KiB
6Elfogadva2ms316 KiB
7Elfogadva1ms316 KiB
subtask314/14
8Elfogadva1ms316 KiB
9Elfogadva1ms316 KiB
10Elfogadva1ms316 KiB
11Elfogadva1ms316 KiB
12Elfogadva1ms316 KiB
13Elfogadva1ms316 KiB
subtask425/25
14Elfogadva1ms316 KiB
15Elfogadva2ms316 KiB
16Elfogadva4ms384 KiB
17Elfogadva4ms564 KiB
18Elfogadva4ms564 KiB
19Elfogadva3ms564 KiB
20Elfogadva3ms640 KiB
21Elfogadva2ms316 KiB
subtask50/22
22Elfogadva181ms9608 KiB
23Futási hiba273ms131072 KiB
24Elfogadva256ms11744 KiB
25Elfogadva194ms9608 KiB
26Elfogadva173ms9696 KiB
27Futási hiba291ms131072 KiB
28Elfogadva254ms13796 KiB
29Elfogadva184ms9704 KiB
30Elfogadva171ms9696 KiB
31Futási hiba289ms131072 KiB
32Elfogadva259ms15500 KiB
33Elfogadva196ms9608 KiB
34Elfogadva180ms9700 KiB
35Futási hiba280ms131072 KiB
36Elfogadva257ms16608 KiB
37Elfogadva187ms9620 KiB
subtask60/30
38Elfogadva1ms316 KiB
39Elfogadva128ms7256 KiB
40Elfogadva2ms316 KiB
41Elfogadva1ms316 KiB
42Elfogadva2ms316 KiB
43Elfogadva2ms316 KiB
44Elfogadva1ms316 KiB
45Elfogadva1ms316 KiB
46Elfogadva1ms316 KiB
47Elfogadva1ms316 KiB
48Elfogadva1ms316 KiB
49Elfogadva1ms316 KiB
50Elfogadva1ms316 KiB
51Elfogadva1ms316 KiB
52Elfogadva2ms316 KiB
53Elfogadva4ms384 KiB
54Elfogadva4ms564 KiB
55Elfogadva4ms564 KiB
56Elfogadva3ms564 KiB
57Elfogadva3ms640 KiB
58Elfogadva2ms316 KiB
59Elfogadva181ms9608 KiB
60Futási hiba273ms131072 KiB
61Elfogadva256ms11744 KiB
62Elfogadva194ms9608 KiB
63Elfogadva173ms9696 KiB
64Futási hiba291ms131072 KiB
65Elfogadva254ms13796 KiB
66Elfogadva184ms9704 KiB
67Elfogadva171ms9696 KiB
68Futási hiba289ms131072 KiB
69Elfogadva259ms15500 KiB
70Elfogadva196ms9608 KiB
71Elfogadva180ms9700 KiB
72Futási hiba280ms131072 KiB
73Elfogadva257ms16608 KiB
74Elfogadva187ms9620 KiB
75Elfogadva293ms13816 KiB
76Elfogadva188ms10984 KiB
77Elfogadva93ms4956 KiB
78Elfogadva186ms12264 KiB
79Elfogadva136ms10792 KiB
80Elfogadva103ms7916 KiB
81Elfogadva101ms7912 KiB
82Elfogadva101ms7912 KiB
83Elfogadva301ms14564 KiB
84Elfogadva101ms5116 KiB
85Elfogadva137ms10792 KiB
86Elfogadva105ms8160 KiB
87Elfogadva108ms8076 KiB
88Elfogadva108ms8164 KiB
89Elfogadva108ms8168 KiB