101992024-03-29 12:55:42111Zárójelekcpp17Accepted 100/10035ms30660 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long

#define MZ 200001

signed main(){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int N;
	cin>>N;
	vector<vector<pair<int,int>>>a(MZ),b(MZ);
	int x=0,ca=0,cb=0;
	for(int i=0;i<N;i++){
		string S;
		cin>>S;
		int y=0,z=0;
		for(char c:S){
			if(c=='('){
				y++;
			}
			else{
				y--;
				z=max(z,-y);
			}
		}
		x+=y;
		if(y>=0){
			ca++;
			a[z].emplace_back(y,i);
		}
		else{
			cb++;
			b[z].emplace_back(y,i);
		}
	}
	if(x!=0){
		cout<<-1<<'\n';
		return 0;
	}
	vector<int>ans;
	multimap<int,int>m;
	int xx=x;
	while(ca--){
		while(xx<=x){
			for(auto[y,i]:a[xx]){
				m.emplace(y,i);
			}
			xx++;
		}
		if(m.empty()){
			cout<<-1<<'\n';
			return 0;
		}
		auto it=--m.end();
		x+=it->first;
		ans.push_back(it->second);
		m.erase(it);
	}
	multimap<int,pair<int,int>>mm;
	for(int z=0;z<MZ;z++){
		for(auto[y,i]:b[z]){
			mm.emplace(y+z,pair<int,int>{y,i});
		}
	}
	while(cb--){
		while(!mm.empty()&&(--mm.end())->first-(--mm.end())->second.first>x){
			mm.erase(--mm.end());
		}
		if(mm.empty()){
			cout<<cb<<" "<<x<<endl;
			cout<<-1<<'\n';
			return 0;
		}
		auto it=--mm.end();
		x+=it->second.first;
		ans.push_back(it->second.second);
		mm.erase(it);
	}
	for(int i:ans){
		cout<<i+1<<' ';
	}
	cout<<'\n';
	return 0;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted12ms20576 KiB
2Accepted14ms21248 KiB
subtask211/11
3Accepted12ms20976 KiB
4Accepted10ms21188 KiB
5Accepted10ms21404 KiB
6Accepted10ms21616 KiB
7Accepted13ms22092 KiB
8Accepted12ms22292 KiB
subtask36/6
9Accepted12ms22240 KiB
10Accepted12ms22124 KiB
11Accepted12ms22128 KiB
subtask414/14
12Accepted12ms22492 KiB
13Accepted13ms22448 KiB
subtask523/23
14Accepted14ms22332 KiB
15Accepted12ms22592 KiB
subtask619/19
16Accepted13ms22420 KiB
17Accepted14ms22988 KiB
18Accepted14ms23260 KiB
19Accepted12ms23000 KiB
20Accepted13ms23260 KiB
21Accepted12ms23492 KiB
22Accepted10ms23508 KiB
23Accepted10ms23624 KiB
24Accepted13ms23712 KiB
subtask727/27
25Accepted13ms23404 KiB
26Accepted13ms23660 KiB
27Accepted14ms24060 KiB
28Accepted14ms24164 KiB
29Accepted17ms25088 KiB
30Accepted35ms30660 KiB
31Accepted13ms23924 KiB
32Accepted13ms24360 KiB
33Accepted12ms24216 KiB
34Accepted13ms24652 KiB
35Accepted10ms23716 KiB
36Accepted16ms24840 KiB
37Accepted10ms23712 KiB
38Accepted13ms23716 KiB
39Accepted19ms26704 KiB
40Accepted10ms23784 KiB
41Accepted12ms23716 KiB
42Accepted12ms24156 KiB
43Accepted10ms24032 KiB