救民于水火(又是转载cookiebus代码的一天)

caochenshuo 2023-12-02 16:24:54 2023-12-02 16:25:26 5 返回题目

#include<bits/stdc++.h>
#define int long long
using namespace std;
priority_queue<int,vector<int>,greater<int> > q;
int m,a[50010],b[50010],sum;
signed main(){
	string s;
	cin>>s;
	int n=s.size();
	for(int i=0;i<n;i++)
		if(s[i]=='?') m++;
	for(int i=1;i<=m;i++){
		cin>>a[i]>>b[i];
		sum+=b[i];
	}
	int cnt=0,c=0;
	for(int i=0;i<n;i++){
		if(s[i]=='(') cnt--;
		else if(s[i]==')'||s[i]=='?'){
			cnt++;
			if(s[i]=='?'){
				c++;
				q.push(-b[c]+a[c]);
			}
			while(cnt>0){
				if(q.empty()){
					cout<<-1;
					return 0;
				}
				sum+=q.top(),q.pop(),cnt-=2;
			}
		}
	}
	if(cnt!=0){
		cout<<-1;
		return 0;
	}
	cout<<sum;
	return 0;
}
{{ vote && vote.total.up }}