fork download
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <cmath>
  4. #include <cstdlib>
  5. #include <cctype>
  6. #include <limits.h>
  7. #include <string>
  8. #include <cstring>
  9. #include <iomanip>
  10. #include <vector>
  11. #include <queue>
  12. #include <set>
  13. #define ll long long
  14. #define dd double
  15. #define ld long double
  16. #define pi 3.14159265359
  17. #define ull unsigned long long
  18. #define yes cout<<"YES\n"
  19. #define no cout<<"NO\n"
  20. #define el "\n"
  21. #define Arwa ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
  22. #define fix(x) cout<<fixed<<setprecision(x)
  23. using namespace std;
  24. ll gcd(ll a,ll b) {return b==0?a:gcd(b,a%b);}
  25. ll lcm(int a,int b) {return a/gcd(a, b)*b;}
  26. int main()
  27. {
  28. Arwa
  29. int n,q;
  30. cin>>n>>q;
  31. string s;
  32. cin>>s;
  33. while(q--)
  34. {
  35. string t;
  36. cin>>t;
  37. if(t=="substr")
  38. {
  39. int l,r;
  40. cin>>l>>r;
  41. // substr بتاخد البداية والطول يعنى هتاخد الفرق بين البداية والنهاية
  42. cout<<s.substr(l-1,r-l+1)<<el;
  43. }
  44. else if(t=="sort")
  45. {
  46. int l,r;
  47. cin>>l>>r;
  48. sort(s.begin()+(l-1),s.begin()+(r));
  49. }
  50. else if(t=="pop_back")
  51. s.pop_back();
  52. else if(t=="back")
  53. cout<<s.back()<<el;
  54. else if(t=="reverse")
  55. {
  56. int l,r;
  57. cin>>l>>r;
  58. reverse(s.begin()+(l-1),s.begin()+r);
  59. }
  60. else if(t=="front")
  61. cout<<s.front()<<el;
  62. else if(t=="push_back")
  63. {
  64. char x;
  65. cin>>x;
  66. s.push_back(x);
  67. }
  68. else if(t=="print")
  69. {
  70. int l;
  71. cin>>l;
  72. cout<<s[l-1]<<el;
  73. }
  74. }
  75. return 0;
  76. }
Success #stdin #stdout 0.01s 5272KB
stdin
Standard input is empty
stdout
Standard output is empty