#include<bits/stdc++.h>
using namespace std;
int n,l,m,_s;
string s;
namespace sub1
{
bool check()
{
return (l<=2000 && m<=2000);
}
void solve()
{
s=" "+s;
while(m--)
{
int a,b,c; cin>>a>>b>>c;
++a;
string t=" ",gaugau=s.substr(a,b-a+1);
for(int i=0;i<=_s;++i)
{
if(i>0) t+=s[i];
if(i==c) t+=gaugau;
}
s=t;
_s+=b-a+1;
while(_s>l) s.pop_back(),--_s;
// cout<<gaugau<<' '<<s<<'\n';
}
for(int i=1;i<=n;++i) cout<<s[i];
}
}
namespace subfull
{
const int M = 2e5 + 10;
int sz[M];
struct node
{
int a,b,c;
node() {}
void input()
{
cin>>a>>b>>c;
++a;
}
} arr[M];
char f(int i, int j)
{
// cout<<i<<' '<<j<<'\n';
if(i==0) return s[j-1];
int a=arr[i].a;
int b=arr[i].b;
int c=arr[i].c;
if(c>=j) return f(i-1,j);
// if(i==4 && j==1) cout<<j<<' '<<a<<' '<<c+1<<'\n';
if(j<=c+b-a+1) return f(i-1,j+a-(c+1));
return f(i-1,j-(b-a+1));
}
void solve()
{
for(int i=1;i<=m;++i)
{
arr[i].input();
}
for(int i=1;i<=n;++i) cout<<f(m,i);
}
}
void solve()
{
cin>>n>>l>>s>>m;
_s=(int)s.size();
// if(sub1::check()) return void(sub1::solve());
return void(subfull::solve());
}
int main(void)
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int testcase=1;
// cin>>testcase;
while(testcase--)
solve();
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |