98942024-03-15 14:10:38BakosCsongorZárójel cserecpp17Időlimit túllépés 77/1001.1s8620 KiB
#include <iostream>
#include <fstream>
#include <vector>

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
1Elfogadva3ms1880 KiB
2Elfogadva3ms2068 KiB
3Elfogadva3ms2404 KiB
subtask233/33
4Elfogadva3ms2500 KiB
5Elfogadva3ms2616 KiB
6Elfogadva2ms2680 KiB
subtask344/44
7Elfogadva3ms2840 KiB
8Elfogadva4ms3104 KiB
9Elfogadva3ms3044 KiB
10Elfogadva3ms3336 KiB
11Elfogadva4ms3312 KiB
12Elfogadva3ms3324 KiB
subtask40/23
13Időlimit túllépés1.1s5420 KiB
14Időlimit túllépés1.065s5556 KiB
15Időlimit túllépés1.077s5640 KiB
16Időlimit túllépés1.052s8332 KiB
17Időlimit túllépés1.054s8360 KiB
18Időlimit túllépés1.062s8308 KiB
19Időlimit túllépés1.077s8444 KiB
20Időlimit túllépés1.057s8304 KiB
21Időlimit túllépés1.067s8588 KiB
22Időlimit túllépés1.065s8552 KiB
23Időlimit túllépés1.072s8620 KiB
24Időlimit túllépés1.055s8552 KiB