98902024-03-15 13:40:00BakosCsongorZárójel cserecpp14Hibás válasz 0/1003ms4284 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álasz3ms1808 KiB
2Hibás válasz3ms2052 KiB
3Elfogadva2ms2136 KiB
subtask20/33
4Hibás válasz3ms2212 KiB
5Elfogadva2ms2368 KiB
6Hibás válasz3ms2568 KiB
subtask30/44
7Hibás válasz2ms2652 KiB
8Hibás válasz3ms2780 KiB
9Hibás válasz2ms2892 KiB
10Hibás válasz2ms2860 KiB
11Hibás válasz2ms2824 KiB
12Hibás válasz2ms2820 KiB
subtask40/23
13Hibás válasz2ms2820 KiB
14Hibás válasz3ms3076 KiB
15Hibás válasz3ms3320 KiB
16Hibás válasz3ms3456 KiB
17Hibás válasz2ms3536 KiB
18Hibás válasz2ms3492 KiB
19Hibás válasz3ms3748 KiB
20Hibás válasz3ms3964 KiB
21Hibás válasz2ms4076 KiB
22Hibás válasz3ms4080 KiB
23Hibás válasz2ms4164 KiB
24Hibás válasz2ms4284 KiB