98882024-03-15 11:27:49BakosCsongorZárójel cserecpp17Hibás válasz 0/1003ms3724 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("input2.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álasz3ms1804 KiB
2Hibás válasz3ms2060 KiB
3Elfogadva3ms2428 KiB
subtask20/33
4Hibás válasz3ms2444 KiB
5Elfogadva2ms2484 KiB
6Hibás válasz3ms2684 KiB
subtask30/44
7Hibás válasz3ms2944 KiB
8Hibás válasz3ms3152 KiB
9Hibás válasz2ms3192 KiB
10Hibás válasz2ms3192 KiB
11Hibás válasz2ms3312 KiB
12Hibás válasz2ms3196 KiB
subtask40/23
13Hibás válasz3ms3324 KiB
14Hibás válasz2ms3432 KiB
15Hibás válasz2ms3392 KiB
16Hibás válasz2ms3392 KiB
17Hibás válasz3ms3540 KiB
18Hibás válasz3ms3704 KiB
19Hibás válasz3ms3604 KiB
20Hibás válasz2ms3604 KiB
21Hibás válasz2ms3604 KiB
22Hibás válasz2ms3600 KiB
23Hibás válasz3ms3724 KiB
24Hibás válasz3ms3724 KiB