#include <bits/stdc++.h>
using namespace std;
typedef pair<int, int> pii;
int n;
vector<pii> dbok;
int main()
{
// moho proba:
// novelok: -db szerint sortolva
// nem novelok: +db szerint sortolva
// megprobaljuk ebben a sorrendben berakni oket, ha nem sikerul nincs mo
ios::sync_with_stdio(false);
cin.tie(NULL);
cin >> n;
string s;
dbok.assign(n, {0, 0});
vector<int> indexek(n);
for(int i = 0; i < n; i++){
cin >> s;
indexek[i] = i;
for(char c : s){
if(c == '('){
dbok[i].second++;
}
else{
if(dbok[i].second > 0){
dbok[i].second--;
}
else{
dbok[i].first++;
}
}
}
}
/*
cout << "-------------\n";
for(auto x : dbok){
cout << x.first << " " << x.second << "\n";
}
*/
sort(indexek.begin(), indexek.end(), [&dbok](const int &a, const int &b){
int kul1 = dbok[a].second - dbok[a].first;
int kul2 = dbok[b].second - dbok[b].first;
if(kul1 >= 0 && kul2 >= 0){
return dbok[a].first < dbok[b].first;
}
else if(kul1 >= 0){
return true;
}
else if(kul2 >= 0){
return false;
}
else{
return dbok[a].second > dbok[b].second;
}
});
bool lehet = true;
int akt = 0;
for(int ind : indexek){
if(dbok[ind].first > akt){
lehet = false;
break;
}
akt -= dbok[ind].first;
akt += dbok[ind].second;
}
lehet &= (akt == 0);
if(lehet){
for(int ind : indexek){
cout << ind + 1 << " ";
}
cout << "\n";
}
else{
cout << "-1\n";
}
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
subtask1 | 0/0 | ||||||
1 | Elfogadva | 3ms | 1864 KiB | ||||
2 | Elfogadva | 4ms | 2216 KiB | ||||
subtask2 | 11/11 | ||||||
3 | Elfogadva | 3ms | 2372 KiB | ||||
4 | Elfogadva | 3ms | 2600 KiB | ||||
5 | Elfogadva | 3ms | 2712 KiB | ||||
6 | Elfogadva | 3ms | 2924 KiB | ||||
7 | Elfogadva | 4ms | 3152 KiB | ||||
8 | Elfogadva | 4ms | 3352 KiB | ||||
subtask3 | 6/6 | ||||||
9 | Elfogadva | 4ms | 3348 KiB | ||||
10 | Elfogadva | 4ms | 3656 KiB | ||||
11 | Elfogadva | 4ms | 3864 KiB | ||||
subtask4 | 14/14 | ||||||
12 | Elfogadva | 4ms | 4088 KiB | ||||
13 | Elfogadva | 4ms | 4040 KiB | ||||
subtask5 | 23/23 | ||||||
14 | Elfogadva | 4ms | 3924 KiB | ||||
15 | Elfogadva | 4ms | 3992 KiB | ||||
subtask6 | 19/19 | ||||||
16 | Elfogadva | 4ms | 3928 KiB | ||||
17 | Elfogadva | 4ms | 4168 KiB | ||||
18 | Elfogadva | 4ms | 4388 KiB | ||||
19 | Elfogadva | 4ms | 4344 KiB | ||||
20 | Elfogadva | 4ms | 4404 KiB | ||||
21 | Elfogadva | 3ms | 4788 KiB | ||||
22 | Elfogadva | 4ms | 4728 KiB | ||||
23 | Elfogadva | 4ms | 4932 KiB | ||||
24 | Elfogadva | 3ms | 5000 KiB | ||||
subtask7 | 27/27 | ||||||
25 | Elfogadva | 4ms | 4820 KiB | ||||
26 | Elfogadva | 4ms | 4948 KiB | ||||
27 | Elfogadva | 4ms | 4812 KiB | ||||
28 | Elfogadva | 4ms | 4872 KiB | ||||
29 | Elfogadva | 7ms | 5096 KiB | ||||
30 | Elfogadva | 17ms | 5972 KiB | ||||
31 | Elfogadva | 4ms | 4880 KiB | ||||
32 | Elfogadva | 4ms | 4876 KiB | ||||
33 | Elfogadva | 4ms | 4868 KiB | ||||
34 | Elfogadva | 4ms | 4976 KiB | ||||
35 | Elfogadva | 4ms | 4804 KiB | ||||
36 | Elfogadva | 4ms | 5312 KiB | ||||
37 | Elfogadva | 3ms | 4944 KiB | ||||
38 | Elfogadva | 4ms | 4952 KiB | ||||
39 | Elfogadva | 8ms | 5260 KiB | ||||
40 | Elfogadva | 3ms | 4984 KiB | ||||
41 | Elfogadva | 3ms | 4928 KiB | ||||
42 | Elfogadva | 4ms | 5148 KiB | ||||
43 | Elfogadva | 4ms | 5140 KiB |