98892024-03-15 13:22:35BakosCsongorZárójel cserecpp17Hibás válasz 0/1003ms3180 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("input1.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álasz3ms1952 KiB
2Hibás válasz3ms2132 KiB
3Elfogadva3ms2292 KiB
subtask20/33
4Hibás válasz3ms2372 KiB
5Elfogadva3ms2588 KiB
6Hibás válasz2ms2704 KiB
subtask30/44
7Hibás válasz2ms2668 KiB
8Hibás válasz2ms2668 KiB
9Hibás válasz3ms2800 KiB
10Hibás válasz2ms2832 KiB
11Hibás válasz2ms2836 KiB
12Hibás válasz2ms2836 KiB
subtask40/23
13Hibás válasz2ms2836 KiB
14Hibás válasz2ms2836 KiB
15Hibás válasz2ms2836 KiB
16Hibás válasz3ms2864 KiB
17Hibás válasz3ms2832 KiB
18Hibás válasz2ms2832 KiB
19Hibás válasz3ms2832 KiB
20Hibás válasz2ms2836 KiB
21Hibás válasz3ms2836 KiB
22Hibás válasz3ms2832 KiB
23Hibás válasz3ms2960 KiB
24Hibás válasz3ms3180 KiB