// 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 | Wrong answer | 8ms | 316 KiB | ||||
| subtask2 | 0/11 | ||||||
| 3 | Wrong answer | 1ms | 316 KiB | ||||
| 4 | Wrong answer | 1ms | 316 KiB | ||||
| 5 | Wrong answer | 1ms | 316 KiB | ||||
| 6 | Wrong answer | 1ms | 316 KiB | ||||
| 7 | Wrong answer | 8ms | 564 KiB | ||||
| 8 | Accepted | 8ms | 756 KiB | ||||
| subtask3 | 0/6 | ||||||
| 9 | Wrong answer | 7ms | 316 KiB | ||||
| 10 | Accepted | 6ms | 316 KiB | ||||
| 11 | Accepted | 7ms | 448 KiB | ||||
| subtask4 | 0/14 | ||||||
| 12 | Wrong answer | 7ms | 316 KiB | ||||
| 13 | Wrong answer | 7ms | 420 KiB | ||||
| subtask5 | 0/23 | ||||||
| 14 | Wrong answer | 7ms | 316 KiB | ||||
| 15 | Wrong answer | 7ms | 316 KiB | ||||
| subtask6 | 0/19 | ||||||
| 16 | Wrong answer | 8ms | 428 KiB | ||||
| 17 | Wrong answer | 8ms | 420 KiB | ||||
| 18 | Wrong answer | 8ms | 468 KiB | ||||
| 19 | Wrong answer | 7ms | 452 KiB | ||||
| 20 | Wrong answer | 7ms | 316 KiB | ||||
| 21 | Wrong answer | 4ms | 316 KiB | ||||
| 22 | Wrong answer | 4ms | 316 KiB | ||||
| 23 | Wrong answer | 4ms | 508 KiB | ||||
| 24 | Wrong answer | 4ms | 408 KiB | ||||
| subtask7 | 0/27 | ||||||
| 25 | Accepted | 8ms | 316 KiB | ||||
| 26 | Wrong answer | 8ms | 316 KiB | ||||
| 27 | Wrong answer | 9ms | 316 KiB | ||||
| 28 | Wrong answer | 9ms | 316 KiB | ||||
| 29 | Wrong answer | 13ms | 708 KiB | ||||
| 30 | Wrong answer | 25ms | 1136 KiB | ||||
| 31 | Wrong answer | 8ms | 500 KiB | ||||
| 32 | Wrong answer | 8ms | 544 KiB | ||||
| 33 | Wrong answer | 7ms | 316 KiB | ||||
| 34 | Wrong answer | 8ms | 316 KiB | ||||
| 35 | Wrong answer | 6ms | 316 KiB | ||||
| 36 | Wrong answer | 8ms | 552 KiB | ||||
| 37 | Accepted | 7ms | 508 KiB | ||||
| 38 | Wrong answer | 7ms | 352 KiB | ||||
| 39 | Wrong answer | 14ms | 736 KiB | ||||
| 40 | Wrong answer | 4ms | 316 KiB | ||||
| 41 | Wrong answer | 2ms | 508 KiB | ||||
| 42 | Wrong answer | 6ms | 408 KiB | ||||
| 43 | Wrong answer | 4ms | 316 KiB | ||||