fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main(){
  5. // write your code here
  6. int n,q;
  7. cin>>n>>q;
  8. string s;
  9. cin>>s;
  10. while(q--){
  11. string c;
  12. cin>>c;
  13. if(c=="pop_back"){
  14. int len = s.length();
  15. if(len > 0)
  16. s.pop_back();
  17. // cout<<c<<" "<<s<<endl;
  18. }
  19. else if(c=="front"){
  20. // cout<<c<<" "<<s<<endl;
  21. if(s.size() > 0)cout<<*s.begin()<<endl;
  22. }
  23. else if(c=="back"){
  24. int len = s.length();
  25. //cout<<c<<" "<<s<<endl;
  26. if(s.size() > 0) cout<<s.back()<<endl;
  27.  
  28. }
  29. else if(c=="sort"){
  30. int l1,r1, l, r; cin>>l1>>r1;
  31. l = min(l1, r1);
  32. r = max(l1, r1);
  33. sort(s.begin()+l-1,s.begin()+r);
  34. // cout<<c<<" "<<s<<endl;
  35. }
  36. else if(c=="reverse"){
  37. int l,r,l1, r1; cin>>l1>>r1;
  38. l = min(l1, r1);
  39. r = max(l1, r1);
  40. reverse(s.begin()+l-1,s.begin()+r);
  41. // cout<<c<<" "<<s<<endl;
  42. }
  43. else if(c=="print"){
  44. int pos; cin>>pos;
  45. // cout<<c<<" "<<s<<endl;
  46. if(pos > 0 && pos <= s.size())
  47. cout<<s[pos-1]<<endl;
  48. }
  49. else if(c=="substr"){
  50. int l1,r1, l, r; cin>>l1>>r1;
  51. l = min(l1, r1);
  52. r = max(l1, r1);
  53. //cout<<c<<" "<<s<<endl;
  54. for(int i = l - 1; i < r; i++){
  55. cout<<s[i];
  56. }
  57. cout<<"\n";
  58. }
  59. else if(c=="push_back"){
  60. char x; cin>>x;
  61. // cout<<c<<" "<<x<<" "<<s<<endl;
  62. s.push_back(x);
  63.  
  64. }
  65.  
  66. }
  67. return 0;
  68. }
Success #stdin #stdout 0s 5300KB
stdin
Standard input is empty
stdout
Standard output is empty