太难
2025-07-23 08:46:34
发布于:广东
2阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define endl '\n'
signed main(){
int n;cin>>n;
string s;cin>>s;s=' '+s;
int q;cin>>q;
vector<int>d(n+2);
int dis=0;
while(q--){
int op;cin>>op;
if(op==1){
int l,r,x;cin>>l>>r>>x;
if(l-dis>=1){
d[l-dis]+=x;
d[r-dis+1]-=x;
}else{
if(r-dis>=1){
d[l-dis+n]+=x;
d[n+1]-=x;
d[1]+=x;
d[r-dis+1]-=x;
}else{
d[l-dis+n]+=x;
d[r-dis+n+1]-=x;
}
}
}else{
int x;cin>>x;
dis+=x;
dis%=n;
}
}
for(int i=1;i<=n;i++) d[i]+=d[i-1];
for(int i=1;i<=n;i++){
d[i]%=26;
s[i]=(s[i]-'a'+d[i])%26+'a';
}
for(int i=n-dis+1;i<=n;i++) cout<<s[i];
for(int i=1;i<=n-dis;i++) cout<<s[i];
return 0;
}
这里空空如也
有帮助,赞一个