98932024-03-15 13:57:37BakosCsongorZárójel cserecpp17Időlimit túllépés 77/1001.1s9252 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
1Elfogadva3ms1876 KiB
2Elfogadva2ms2120 KiB
3Elfogadva3ms2332 KiB
subtask233/33
4Elfogadva3ms2488 KiB
5Elfogadva3ms2740 KiB
6Elfogadva3ms2952 KiB
subtask344/44
7Elfogadva3ms3080 KiB
8Elfogadva4ms3212 KiB
9Elfogadva3ms3576 KiB
10Elfogadva3ms3648 KiB
11Elfogadva3ms3712 KiB
12Elfogadva4ms3832 KiB
subtask40/23
13Időlimit túllépés1.1s5520 KiB
14Időlimit túllépés1.065s5748 KiB
15Időlimit túllépés1.07s6056 KiB
16Időlimit túllépés1.062s8684 KiB
17Időlimit túllépés1.08s8960 KiB
18Időlimit túllépés1.054s8764 KiB
19Időlimit túllépés1.078s8764 KiB
20Időlimit túllépés1.075s8984 KiB
21Időlimit túllépés1.08s9068 KiB
22Időlimit túllépés1.06s9252 KiB
23Időlimit túllépés1.034s9188 KiB
24Időlimit túllépés1.072s9072 KiB