167762025-05-12 22:22:23TaxiradioZá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
1Elfogadva1ms332 KiB
2Hibás válasz8ms316 KiB
subtask20/11
3Hibás válasz1ms316 KiB
4Hibás válasz1ms316 KiB
5Hibás válasz1ms316 KiB
6Elfogadva1ms316 KiB
7Elfogadva8ms568 KiB
8Elfogadva8ms564 KiB
subtask30/6
9Hibás válasz7ms316 KiB
10Elfogadva7ms620 KiB
11Elfogadva7ms508 KiB
subtask40/14
12Hibás válasz7ms456 KiB
13Hibás válasz7ms316 KiB
subtask50/23
14Hibás válasz7ms316 KiB
15Hibás válasz7ms508 KiB
subtask60/19
16Hibás válasz8ms508 KiB
17Hibás válasz8ms316 KiB
18Hibás válasz8ms316 KiB
19Hibás válasz7ms412 KiB
20Hibás válasz7ms316 KiB
21Hibás válasz4ms444 KiB
22Hibás válasz4ms444 KiB
23Hibás válasz4ms412 KiB
24Hibás válasz4ms508 KiB
subtask70/27
25Elfogadva8ms316 KiB
26Hibás válasz8ms500 KiB
27Hibás válasz9ms500 KiB
28Hibás válasz9ms316 KiB
29Hibás válasz13ms564 KiB
30Hibás válasz25ms1136 KiB
31Hibás válasz8ms316 KiB
32Hibás válasz8ms316 KiB
33Hibás válasz7ms332 KiB
34Hibás válasz8ms508 KiB
35Hibás válasz6ms316 KiB
36Hibás válasz8ms316 KiB
37Elfogadva6ms316 KiB
38Hibás válasz7ms452 KiB
39Hibás válasz14ms828 KiB
40Hibás válasz4ms316 KiB
41Hibás válasz2ms316 KiB
42Hibás válasz6ms316 KiB
43Hibás válasz4ms424 KiB