182952025-10-17 21:37:59ercseferencSzimmetrikus sorozatcpp17Futási hiba 48/100328ms131072 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)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
2Elfogadva129ms10984 KiB
subtask29/9
3Elfogadva2ms756 KiB
4Elfogadva2ms564 KiB
5Elfogadva2ms564 KiB
6Elfogadva2ms756 KiB
7Elfogadva2ms564 KiB
subtask314/14
8Elfogadva1ms424 KiB
9Elfogadva1ms424 KiB
10Elfogadva1ms316 KiB
11Elfogadva1ms500 KiB
12Elfogadva1ms428 KiB
13Elfogadva1ms360 KiB
subtask425/25
14Elfogadva1ms316 KiB
15Elfogadva2ms528 KiB
16Elfogadva4ms564 KiB
17Elfogadva4ms564 KiB
18Elfogadva4ms756 KiB
19Elfogadva4ms568 KiB
20Elfogadva4ms696 KiB
21Elfogadva3ms564 KiB
subtask50/22
22Elfogadva208ms14508 KiB
23Futási hiba287ms131072 KiB
24Elfogadva289ms17328 KiB
25Elfogadva226ms14380 KiB
26Elfogadva209ms14308 KiB
27Futási hiba263ms131072 KiB
28Elfogadva272ms20708 KiB
29Elfogadva203ms14304 KiB
30Elfogadva195ms14400 KiB
31Futási hiba282ms131072 KiB
32Elfogadva286ms24800 KiB
33Elfogadva218ms14564 KiB
34Elfogadva209ms14512 KiB
35Futási hiba266ms131072 KiB
36Elfogadva279ms26852 KiB
37Elfogadva202ms14560 KiB
subtask60/30
38Elfogadva1ms316 KiB
39Elfogadva137ms10984 KiB
40Elfogadva2ms756 KiB
41Elfogadva2ms564 KiB
42Elfogadva2ms564 KiB
43Elfogadva2ms756 KiB
44Elfogadva2ms564 KiB
45Elfogadva1ms424 KiB
46Elfogadva1ms424 KiB
47Elfogadva1ms316 KiB
48Elfogadva1ms500 KiB
49Elfogadva1ms428 KiB
50Elfogadva1ms360 KiB
51Elfogadva1ms316 KiB
52Elfogadva2ms528 KiB
53Elfogadva4ms564 KiB
54Elfogadva4ms564 KiB
55Elfogadva4ms756 KiB
56Elfogadva4ms568 KiB
57Elfogadva4ms696 KiB
58Elfogadva3ms564 KiB
59Elfogadva208ms14508 KiB
60Futási hiba287ms131072 KiB
61Elfogadva289ms17328 KiB
62Elfogadva226ms14380 KiB
63Elfogadva209ms14308 KiB
64Futási hiba263ms131072 KiB
65Elfogadva272ms20708 KiB
66Elfogadva203ms14304 KiB
67Elfogadva195ms14400 KiB
68Futási hiba282ms131072 KiB
69Elfogadva286ms24800 KiB
70Elfogadva218ms14564 KiB
71Elfogadva209ms14512 KiB
72Futási hiba266ms131072 KiB
73Elfogadva279ms26852 KiB
74Elfogadva202ms14560 KiB
75Elfogadva328ms20736 KiB
76Elfogadva214ms18508 KiB
77Elfogadva115ms10100 KiB
78Elfogadva230ms22064 KiB
79Elfogadva163ms21984 KiB
80Elfogadva122ms11568 KiB
81Elfogadva122ms11748 KiB
82Elfogadva123ms11744 KiB
83Elfogadva312ms22244 KiB
84Elfogadva114ms10664 KiB
85Elfogadva177ms22752 KiB
86Elfogadva128ms12516 KiB
87Elfogadva126ms12772 KiB
88Elfogadva128ms12516 KiB
89Elfogadva127ms12452 KiB