98922024-03-15 13:53:49BakosCsongorZárójel cserecpp17Hibás válasz 0/1001.1s9460 KiB
#include <bits/stdc++.h>

using namespace std;

int N;
vector <char> zarojel;
vector <int> sorszam;
vector <pair<int, int>> parok;
int lepesek = 0;

void simplify()
{
    for(int j = 1; j < zarojel.size(); j++)
    {
        if(zarojel.at(j-1) == '(' and zarojel.at(j) == ')')
        {
            zarojel.erase(zarojel.begin()+j-1,zarojel.begin()+j+1);
            sorszam.erase(sorszam.begin()+j-1,sorszam.begin()+j+1);
            if(j > 2) j-=2;
            else j = 0;
        }
    }
}

void megold()
{
    while(zarojel.size() > 0)
    {
        swap(zarojel[0], zarojel[zarojel.size() - 1]);
        pair<int, int> a;
        a.first = sorszam[0];
        a.second = sorszam[sorszam.size() - 1];
        parok.push_back(a);
        simplify();
        lepesek++;
    }
}


int main()
{
    //ifstream cin("input0.txt");
    cin >> N;
    for(int i = 0; i < N; i++)
    {
        char c;
        cin >> c;
        zarojel.push_back(c);
        sorszam.push_back(i);
    }
    simplify();
    megold();
    cout << lepesek << endl;
    for(int i = 0; i < parok.size(); i++)
    {
        cout << parok[i].first << "" << parok[i].second << endl;
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Hibás válasz3ms1788 KiB
2Hibás válasz3ms2032 KiB
3Elfogadva3ms2272 KiB
subtask20/33
4Hibás válasz2ms2364 KiB
5Elfogadva3ms2492 KiB
6Hibás válasz3ms2580 KiB
subtask30/44
7Hibás válasz3ms2676 KiB
8Hibás válasz4ms2684 KiB
9Hibás válasz3ms2972 KiB
10Hibás válasz3ms2872 KiB
11Hibás válasz4ms3188 KiB
12Hibás válasz4ms3512 KiB
subtask40/23
13Időlimit túllépés1.1s5328 KiB
14Időlimit túllépés1.065s5424 KiB
15Időlimit túllépés1.065s5796 KiB
16Időlimit túllépés1.072s8604 KiB
17Időlimit túllépés1.07s8736 KiB
18Időlimit túllépés1.069s8696 KiB
19Időlimit túllépés1.042s8712 KiB
20Időlimit túllépés1.046s8524 KiB
21Időlimit túllépés1.083s9044 KiB
22Időlimit túllépés1.077s9416 KiB
23Időlimit túllépés1.062s9460 KiB
24Időlimit túllépés1.044s9412 KiB