98912024-03-15 13:40:28BakosCsongorZárójel cserecpp11Hibás válasz 0/1003ms4096 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álasz3ms2056 KiB
3Elfogadva3ms2264 KiB
subtask20/33
4Hibás válasz3ms2248 KiB
5Elfogadva3ms2480 KiB
6Hibás válasz3ms2728 KiB
subtask30/44
7Hibás válasz3ms2808 KiB
8Hibás válasz3ms2904 KiB
9Hibás válasz3ms3096 KiB
10Hibás válasz3ms3348 KiB
11Hibás válasz2ms3388 KiB
12Hibás válasz3ms3524 KiB
subtask40/23
13Hibás válasz3ms3608 KiB
14Hibás válasz3ms3568 KiB
15Hibás válasz3ms3568 KiB
16Hibás válasz3ms3568 KiB
17Hibás válasz3ms3568 KiB
18Hibás válasz2ms3568 KiB
19Hibás válasz2ms3564 KiB
20Hibás válasz3ms3696 KiB
21Hibás válasz3ms3808 KiB
22Hibás válasz3ms4012 KiB
23Hibás válasz2ms4096 KiB
24Hibás válasz2ms4088 KiB