187442025-11-03 21:35:00ercseferencSzimmetrikus sorozatcpp17Futási hiba 48/100344ms131072 KiB
#include <bits/stdc++.h>
#define int long long
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;}
signed main()
{
    ios_base::sync_with_stdio(false);
    cin.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)break;
            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
2Elfogadva137ms10860 KiB
subtask29/9
3Elfogadva2ms316 KiB
4Elfogadva2ms316 KiB
5Elfogadva2ms316 KiB
6Elfogadva2ms508 KiB
7Elfogadva2ms564 KiB
subtask314/14
8Elfogadva1ms352 KiB
9Elfogadva1ms532 KiB
10Elfogadva1ms508 KiB
11Elfogadva1ms316 KiB
12Elfogadva1ms316 KiB
13Elfogadva1ms316 KiB
subtask425/25
14Elfogadva1ms316 KiB
15Elfogadva2ms316 KiB
16Elfogadva4ms492 KiB
17Elfogadva4ms688 KiB
18Elfogadva4ms564 KiB
19Elfogadva4ms564 KiB
20Elfogadva3ms564 KiB
21Elfogadva2ms576 KiB
subtask50/22
22Elfogadva210ms13236 KiB
23Futási hiba289ms131072 KiB
24Elfogadva287ms16316 KiB
25Elfogadva216ms13244 KiB
26Elfogadva203ms13276 KiB
27Futási hiba280ms131072 KiB
28Elfogadva268ms19572 KiB
29Elfogadva202ms13284 KiB
30Elfogadva194ms13284 KiB
31Futási hiba277ms131072 KiB
32Elfogadva284ms23784 KiB
33Elfogadva221ms13216 KiB
34Elfogadva197ms13284 KiB
35Futási hiba266ms131072 KiB
36Elfogadva282ms25824 KiB
37Elfogadva212ms13288 KiB
subtask60/30
38Elfogadva1ms316 KiB
39Elfogadva143ms10984 KiB
40Elfogadva2ms316 KiB
41Elfogadva2ms316 KiB
42Elfogadva2ms316 KiB
43Elfogadva2ms508 KiB
44Elfogadva2ms564 KiB
45Elfogadva1ms352 KiB
46Elfogadva1ms532 KiB
47Elfogadva1ms508 KiB
48Elfogadva1ms316 KiB
49Elfogadva1ms316 KiB
50Elfogadva1ms316 KiB
51Elfogadva1ms316 KiB
52Elfogadva2ms316 KiB
53Elfogadva4ms492 KiB
54Elfogadva4ms688 KiB
55Elfogadva4ms564 KiB
56Elfogadva4ms564 KiB
57Elfogadva3ms564 KiB
58Elfogadva2ms576 KiB
59Elfogadva210ms13236 KiB
60Futási hiba289ms131072 KiB
61Elfogadva287ms16316 KiB
62Elfogadva216ms13244 KiB
63Elfogadva203ms13276 KiB
64Futási hiba280ms131072 KiB
65Elfogadva268ms19572 KiB
66Elfogadva202ms13284 KiB
67Elfogadva194ms13284 KiB
68Futási hiba277ms131072 KiB
69Elfogadva284ms23784 KiB
70Elfogadva221ms13216 KiB
71Elfogadva197ms13284 KiB
72Futási hiba266ms131072 KiB
73Elfogadva282ms25824 KiB
74Elfogadva212ms13288 KiB
75Elfogadva305ms19388 KiB
76Elfogadva210ms17088 KiB
77Elfogadva112ms8568 KiB
78Elfogadva231ms20660 KiB
79Elfogadva162ms20704 KiB
80Elfogadva120ms10228 KiB
81Elfogadva122ms10212 KiB
82Elfogadva119ms10428 KiB
83Elfogadva344ms20236 KiB
84Elfogadva115ms8616 KiB
85Elfogadva174ms20668 KiB
86Elfogadva125ms10432 KiB
87Elfogadva127ms10424 KiB
88Elfogadva128ms10440 KiB
89Elfogadva123ms10424 KiB