167752025-05-12 22:18:53TaxiradioZárójelekcpp17Hibás válasz 0/10025ms1136 KiB
// Source: https://usaco.guide/general/io

#include <bits/stdc++.h>
using namespace std;

array<int , 3> c(string b){
    int x = 0, y = 0 , z = 0;
    for(int i = b.size()-1; i >= 0; i--){
        if(b[i] == '('){
            x--;
            z = min(x , z);
        }else{
            x++;
        }
    }
    x = 0;
    for(int i = 0; i < b.size(); i++){
        if(b[i] == ')'){
            x--;
            y = min(x , y);
        }else{
            x++;
        }
    }
    return {x , y , z};
}

int main() {
	int n; cin >> n;
    vector<array<int , 3>> a , d;
    int k = 0;
    for(int i = 0; i < n; i++){
        string b; cin >> b;
        array<int , 3> o = c(b);
        k += o[0];
        if(o[0] >= 0)a.push_back({o[1] , o[0] , i});else d.push_back({-o[2] , o[0] , i});
    }
    if(k != 0){
        cout << "-1" << endl;
        return 0;
    }
    sort(a.begin() , a.end());
    sort(d.begin() , d.end());
    vector<int> ans1 , ans2;
    int h = 0;
    for(int i = 0; i < a.size(); i++){
        if(a[i][0] <= h){
            ans1.push_back(a[i][2]);
            h += a[i][1];
        }else{
            cout << "-1" << endl;
            return 0;
        }
    }
    h = 0;
    for(int i = 0; i < d.size(); i++){
        if(d[i][0] <= h){
            ans2.push_back(d[i][2]);
            h += d[i][1];
        }else{
            cout << "-1" << endl;
            return 0;
        }
    }
    for(int x : ans1)cout << x+1 << " ";
    reverse(ans2.begin() , ans2.end());
    for(int x : ans2)cout << x+1 << " ";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
2Hibás válasz8ms316 KiB
subtask20/11
3Hibás válasz1ms316 KiB
4Hibás válasz1ms316 KiB
5Hibás válasz1ms316 KiB
6Hibás válasz1ms316 KiB
7Hibás válasz8ms564 KiB
8Elfogadva8ms756 KiB
subtask30/6
9Hibás válasz7ms316 KiB
10Elfogadva6ms316 KiB
11Elfogadva7ms448 KiB
subtask40/14
12Hibás válasz7ms316 KiB
13Hibás válasz7ms420 KiB
subtask50/23
14Hibás válasz7ms316 KiB
15Hibás válasz7ms316 KiB
subtask60/19
16Hibás válasz8ms428 KiB
17Hibás válasz8ms420 KiB
18Hibás válasz8ms468 KiB
19Hibás válasz7ms452 KiB
20Hibás válasz7ms316 KiB
21Hibás válasz4ms316 KiB
22Hibás válasz4ms316 KiB
23Hibás válasz4ms508 KiB
24Hibás válasz4ms408 KiB
subtask70/27
25Elfogadva8ms316 KiB
26Hibás válasz8ms316 KiB
27Hibás válasz9ms316 KiB
28Hibás válasz9ms316 KiB
29Hibás válasz13ms708 KiB
30Hibás válasz25ms1136 KiB
31Hibás válasz8ms500 KiB
32Hibás válasz8ms544 KiB
33Hibás válasz7ms316 KiB
34Hibás válasz8ms316 KiB
35Hibás válasz6ms316 KiB
36Hibás válasz8ms552 KiB
37Elfogadva7ms508 KiB
38Hibás válasz7ms352 KiB
39Hibás válasz14ms736 KiB
40Hibás válasz4ms316 KiB
41Hibás válasz2ms508 KiB
42Hibás válasz6ms408 KiB
43Hibás válasz4ms316 KiB