172852025-06-17 11:58:30ercseferencSzimmetrikus sorozatcpp17Futási hiba 48/100296ms131072 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);
    //ifstream f("szamok.txt");
    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;
            for(int j=0; j<v; j++){
                csoportok[a[x].csop].push_back(csoportok[w][j]);
                a[csoportok[w][j]].ert=a[x].ert;
                a[csoportok[w][j]].csop=a[x].csop;}}}
    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
2Elfogadva118ms7144 KiB
subtask29/9
3Elfogadva2ms316 KiB
4Elfogadva2ms316 KiB
5Elfogadva2ms316 KiB
6Elfogadva2ms316 KiB
7Elfogadva1ms316 KiB
subtask314/14
8Elfogadva1ms316 KiB
9Elfogadva1ms316 KiB
10Elfogadva1ms316 KiB
11Elfogadva1ms316 KiB
12Elfogadva1ms316 KiB
13Elfogadva1ms316 KiB
subtask425/25
14Elfogadva1ms564 KiB
15Elfogadva2ms328 KiB
16Elfogadva4ms568 KiB
17Elfogadva4ms564 KiB
18Elfogadva4ms564 KiB
19Elfogadva3ms564 KiB
20Elfogadva3ms564 KiB
21Elfogadva2ms316 KiB
subtask50/22
22Elfogadva180ms9696 KiB
23Futási hiba280ms131072 KiB
24Elfogadva257ms11928 KiB
25Elfogadva184ms9700 KiB
26Elfogadva172ms9708 KiB
27Futási hiba296ms131072 KiB
28Elfogadva252ms13964 KiB
29Elfogadva180ms9696 KiB
30Elfogadva167ms9700 KiB
31Futási hiba280ms131072 KiB
32Elfogadva257ms15332 KiB
33Elfogadva187ms9700 KiB
34Elfogadva177ms9696 KiB
35Futási hiba293ms131072 KiB
36Elfogadva256ms16608 KiB
37Elfogadva188ms9612 KiB
subtask60/30
38Elfogadva1ms316 KiB
39Elfogadva126ms7144 KiB
40Elfogadva2ms316 KiB
41Elfogadva2ms316 KiB
42Elfogadva2ms316 KiB
43Elfogadva2ms316 KiB
44Elfogadva1ms316 KiB
45Elfogadva1ms316 KiB
46Elfogadva1ms316 KiB
47Elfogadva1ms316 KiB
48Elfogadva1ms316 KiB
49Elfogadva1ms316 KiB
50Elfogadva1ms316 KiB
51Elfogadva1ms564 KiB
52Elfogadva2ms328 KiB
53Elfogadva4ms568 KiB
54Elfogadva4ms564 KiB
55Elfogadva4ms564 KiB
56Elfogadva3ms564 KiB
57Elfogadva3ms564 KiB
58Elfogadva2ms316 KiB
59Elfogadva180ms9696 KiB
60Futási hiba280ms131072 KiB
61Elfogadva257ms11928 KiB
62Elfogadva184ms9700 KiB
63Elfogadva172ms9708 KiB
64Futási hiba296ms131072 KiB
65Elfogadva252ms13964 KiB
66Elfogadva180ms9696 KiB
67Elfogadva167ms9700 KiB
68Futási hiba280ms131072 KiB
69Elfogadva257ms15332 KiB
70Elfogadva187ms9700 KiB
71Elfogadva177ms9696 KiB
72Futási hiba293ms131072 KiB
73Elfogadva256ms16608 KiB
74Elfogadva188ms9612 KiB
75Elfogadva279ms13792 KiB
76Elfogadva185ms10976 KiB
77Elfogadva93ms5036 KiB
78Elfogadva184ms12272 KiB
79Elfogadva125ms11040 KiB
80Elfogadva94ms7916 KiB
81Elfogadva93ms7912 KiB
82Elfogadva96ms7912 KiB
83Elfogadva289ms14560 KiB
84Elfogadva94ms5292 KiB
85Elfogadva133ms11040 KiB
86Elfogadva100ms8160 KiB
87Elfogadva101ms8172 KiB
88Elfogadva101ms8164 KiB
89Elfogadva100ms8160 KiB