社区讨论

ABC314D

灌水区参与者 3已保存回复 15

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
15 条
当前快照
1 份
快照标识符
@lo1vk9lm
此快照首次捕获于
2023/10/23 03:41
2 年前
此快照最后确认于
2023/11/03 04:11
2 年前
查看原帖
样例本地是过的,submit 结果 samples AC*1,WA*1,All AC*11 WA*13
不知道哪UB了还是哪写挂了qwq,求教
btw这场 Language 没有 C++(GCC 9.21)不知道为什么。。
CPP
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
inline ll read(){
	ll x=0,f=1;char ch=getchar();
	while(!isdigit(ch)){if(ch=='-')f=-f;ch=getchar();}
	while(isdigit(ch)){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}
	return x*f;
}
inline void write(ll x){
	if(x<0)putchar('-'),x=-x;
	if(x>9)write(x/10);
	putchar(x%10+'0');
}
inline void writeln(ll x){write(x),putchar('\n');}
const ll N=500005;
string s;
ll n,q,low,upp,tim[N];
char final[N];
inline char up(char x){
	if(x>='A'&&x<='Z')return x;
	else return (char)x-'a'+'A';
}
inline char lw(char x){
	if(x>='a'&&x<='z')return x;
	else return (char)x-'A'+'a';
}
int main(){
	n=read();
	cin>>s;s=" "+s;ll len=s.size();
	q=read();
	for(ll i=1,t,x;i<=q;i++){
		char c;
		t=read(),x=read();
		cin>>c;
		if(t==2)low=i;
		else if(t==3)upp=i;
		else{
			final[x]=c;
			tim[x]=i;
		}
	}
	for(ll i=1;i<=len;i++){
		if(!tim[i]){
			if(!low&&!upp)cout<<s[i];
			else{
				if(upp>low)cout<<up(s[i]);
				else cout<<lw(s[i]);
			}
		}else{
			if(!low&&!upp)cout<<final[i];
			else{
				if(upp>low){
					if(tim[i]<upp)cout<<up(final[i]);
					else cout<<final[i];
				}else{
					if(tim[i]<low)cout<<lw(final[i]);
					else cout<<final[i];
				}
			}
		}
	}
	return 0;
}

回复

15 条回复,欢迎继续交流。

正在加载回复...