re求助
  • 板块灌水区
  • 楼主Eden2027
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/8/20 21:45
  • 上次更新2024/8/21 09:13:10
查看原帖
re求助
1088800
Eden2027楼主2024/8/20 21:45
#include <bits/stdc++.h>
using namespace std;
struct node{
	int y;char z;
}bb[500005];
int n,m,last=-1;
string a;
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);cout.tie(0);
	cin>>n>>a;
	cin>>m;int mxormi=-1;
	for(int i=0;i<m;i++){
		int aa,b;char c;
		cin>>aa>>b>>c;bb[i].y=b;bb[i].z=c;
		if(aa==1){
			a[b-1]=c;
		}
		else if(aa==2){
			mxormi=1;
			last=i+1;
//			cout<<last<<endl;
		}
		else{
			mxormi=0;
			last=i+1;
//			cout<<last<<endl;
		}
//		cout<<last<<endl;
	}
	priority_queue<int, vector<int>,greater<int> >q;

	if(last!=-1){
		for(int i=last;i<m;i++){
			q.push(bb[i].y);
		}
	}
//	cout<<q.size()<<" "<<q.front()<<endl;
	if(mxormi==-1)
		cout<<a;
	else if(mxormi==1){
		for(int i=0;i<a.size();i++){
			if(a[i]>='A' && a[i]<='Z' && q.top()-1!=i){
				cout<<char(a[i]-'A'+'a');
			}
			else{	
				cout<<a[i];
				if(q.top()-1==i && q.size()){
					q.pop();
				}
			}
		}
	}
	else{
		for(int i=0;i<n;i++){
			if(a[i]>='a' && a[i]<='z' && q.top()-1!=i){
				cout<<char(a[i]-'a'+'A');
			}
			else{	
				cout<<a[i];
				if(q.top()-1==i && q.size()){
//					cout<<q.size()<<" "<<q.front()<<endl;
//					cout<<a[i];
					q.pop();
				}
			}
		}
	}
	return 0;
}
2024/8/20 21:45
加载中...