172862025-06-17 12:12:08ercseferencSzimmetrikus sorozatcpp17Futási hiba 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
2Elfogadva116ms7144 KiB
subtask29/9
3Elfogadva2ms316 KiB
4Elfogadva1ms316 KiB
5Elfogadva2ms316 KiB
6Elfogadva2ms316 KiB
7Elfogadva1ms316 KiB
subtask314/14
8Elfogadva1ms508 KiB
9Elfogadva1ms316 KiB
10Elfogadva1ms316 KiB
11Elfogadva1ms508 KiB
12Elfogadva1ms316 KiB
13Elfogadva1ms316 KiB
subtask425/25
14Elfogadva1ms316 KiB
15Elfogadva2ms484 KiB
16Elfogadva4ms564 KiB
17Elfogadva4ms616 KiB
18Elfogadva4ms564 KiB
19Elfogadva3ms512 KiB
20Elfogadva3ms564 KiB
21Elfogadva2ms460 KiB
subtask50/22
22Elfogadva184ms9612 KiB
23Futási hiba291ms131072 KiB
24Elfogadva256ms11916 KiB
25Elfogadva187ms9620 KiB
26Elfogadva172ms9696 KiB
27Futási hiba268ms131072 KiB
28Elfogadva248ms13872 KiB
29Elfogadva177ms9696 KiB
30Elfogadva171ms9612 KiB
31Futási hiba284ms131072 KiB
32Elfogadva256ms15500 KiB
33Elfogadva190ms9700 KiB
34Elfogadva179ms9708 KiB
35Futási hiba300ms131072 KiB
36Elfogadva256ms16612 KiB
37Elfogadva180ms9692 KiB
subtask60/30
38Elfogadva1ms316 KiB
39Elfogadva123ms7148 KiB
40Elfogadva2ms316 KiB
41Elfogadva1ms316 KiB
42Elfogadva2ms316 KiB
43Elfogadva2ms316 KiB
44Elfogadva1ms316 KiB
45Elfogadva1ms508 KiB
46Elfogadva1ms316 KiB
47Elfogadva1ms316 KiB
48Elfogadva1ms508 KiB
49Elfogadva1ms316 KiB
50Elfogadva1ms316 KiB
51Elfogadva1ms316 KiB
52Elfogadva2ms484 KiB
53Elfogadva4ms564 KiB
54Elfogadva4ms616 KiB
55Elfogadva4ms564 KiB
56Elfogadva3ms512 KiB
57Elfogadva3ms564 KiB
58Elfogadva2ms460 KiB
59Elfogadva184ms9612 KiB
60Futási hiba291ms131072 KiB
61Elfogadva256ms11916 KiB
62Elfogadva187ms9620 KiB
63Elfogadva172ms9696 KiB
64Futási hiba268ms131072 KiB
65Elfogadva248ms13872 KiB
66Elfogadva177ms9696 KiB
67Elfogadva171ms9612 KiB
68Futási hiba284ms131072 KiB
69Elfogadva256ms15500 KiB
70Elfogadva190ms9700 KiB
71Elfogadva179ms9708 KiB
72Futási hiba300ms131072 KiB
73Elfogadva256ms16612 KiB
74Elfogadva180ms9692 KiB
75Elfogadva284ms13796 KiB
76Elfogadva186ms11008 KiB
77Elfogadva93ms4956 KiB
78Elfogadva180ms12264 KiB
79Elfogadva128ms10960 KiB
80Elfogadva93ms7912 KiB
81Elfogadva96ms7912 KiB
82Elfogadva93ms7912 KiB
83Elfogadva272ms14564 KiB
84Elfogadva92ms5308 KiB
85Elfogadva133ms10968 KiB
86Elfogadva100ms8160 KiB
87Elfogadva100ms8164 KiB
88Elfogadva101ms8164 KiB
89Elfogadva101ms8164 KiB