// 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 << " ";
}
| Subtask | Sum | Test | Verdict | Time | Memory | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 0/0 | ||||||
| 1 | Accepted | 1ms | 316 KiB | ||||
| 2 | Accepted | 8ms | 316 KiB | ||||
| subtask2 | 11/11 | ||||||
| 3 | Accepted | 1ms | 316 KiB | ||||
| 4 | Accepted | 1ms | 332 KiB | ||||
| 5 | Accepted | 1ms | 316 KiB | ||||
| 6 | Accepted | 1ms | 332 KiB | ||||
| 7 | Accepted | 8ms | 424 KiB | ||||
| 8 | Accepted | 8ms | 528 KiB | ||||
| subtask3 | 6/6 | ||||||
| 9 | Accepted | 8ms | 448 KiB | ||||
| 10 | Accepted | 7ms | 452 KiB | ||||
| 11 | Accepted | 7ms | 440 KiB | ||||
| subtask4 | 14/14 | ||||||
| 12 | Accepted | 7ms | 544 KiB | ||||
| 13 | Accepted | 7ms | 464 KiB | ||||
| subtask5 | 23/23 | ||||||
| 14 | Accepted | 7ms | 512 KiB | ||||
| 15 | Accepted | 7ms | 444 KiB | ||||
| subtask6 | 19/19 | ||||||
| 16 | Accepted | 8ms | 316 KiB | ||||
| 17 | Accepted | 8ms | 440 KiB | ||||
| 18 | Accepted | 8ms | 440 KiB | ||||
| 19 | Accepted | 7ms | 448 KiB | ||||
| 20 | Accepted | 7ms | 468 KiB | ||||
| 21 | Accepted | 6ms | 512 KiB | ||||
| 22 | Accepted | 4ms | 520 KiB | ||||
| 23 | Accepted | 6ms | 420 KiB | ||||
| 24 | Accepted | 4ms | 316 KiB | ||||
| subtask7 | 27/27 | ||||||
| 25 | Accepted | 8ms | 432 KiB | ||||
| 26 | Accepted | 9ms | 476 KiB | ||||
| 27 | Accepted | 9ms | 436 KiB | ||||
| 28 | Accepted | 10ms | 460 KiB | ||||
| 29 | Accepted | 14ms | 604 KiB | ||||
| 30 | Accepted | 32ms | 1624 KiB | ||||
| 31 | Accepted | 8ms | 384 KiB | ||||
| 32 | Accepted | 8ms | 544 KiB | ||||
| 33 | Accepted | 8ms | 452 KiB | ||||
| 34 | Accepted | 9ms | 444 KiB | ||||
| 35 | Accepted | 7ms | 424 KiB | ||||
| 36 | Accepted | 9ms | 564 KiB | ||||
| 37 | Accepted | 7ms | 472 KiB | ||||
| 38 | Accepted | 7ms | 316 KiB | ||||
| 39 | Accepted | 17ms | 820 KiB | ||||
| 40 | Accepted | 4ms | 316 KiB | ||||
| 41 | Accepted | 2ms | 316 KiB | ||||
| 42 | Accepted | 7ms | 452 KiB | ||||
| 43 | Accepted | 6ms | 440 KiB | ||||