re求调(违规紫衫)
  • 板块灌水区
  • 楼主Eden2027
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/8/21 08:26
  • 上次更新2024/8/21 11:07:34
查看原帖
re求调(违规紫衫)
1088800
Eden2027楼主2024/8/21 08:26

[ABC314D] LOWER

#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;
		}
		else{
			mxormi=0;
			last=i+1;
		}
	}
	priority_queue<int, vector<int>,greater<int> >q;
	
	if(last!=-1){
		for(int i=last;i<m;i++){
			q.push(bb[i].y);
		}
	}
	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()){
					q.pop();
				}
			}
		}
	}
	return 0;
}
2024/8/21 08:26
加载中...