Advertisement
Guest User

Untitled

a guest
May 24th, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.14 KB | None | 0 0
  1. #include<iostream>
  2.  
  3. using namespace std;
  4.  
  5. const int N = int(1e5)+92;
  6.  
  7. int d[4*N], a[N];
  8.  
  9. void push(int v, int l, int r)
  10. {
  11.     if (l != r)
  12.     {
  13.        
  14.         d[2 * v] += d[v];
  15.         d[2 * v + 1] += d[v];
  16.         d[v] = 0;
  17.     }
  18. }
  19.  
  20. void modify(int v, int l, int r, int x, int y)
  21. {
  22. //  cout << v << ' ' << l << ' ' << r << ' ' << x << ' ' << y <<'\n';
  23.     if (d[v] != 0) push(v, l, r);
  24.     if (l > x || r < x) return;
  25.     if (l >= x && r <= y)
  26.     {
  27.         d[v]++;
  28.         push(v, l, r);
  29.         return;
  30.     }
  31.     int m = (l + r) / 2;
  32.     modify(2 * v, l, m, x, y);
  33.     modify(2 * v + 1, m + 1, r, x, y);
  34. }
  35.  
  36. void zap(int v, int l, int r)
  37. {
  38.     push(v, l, r);
  39.     if (l == r)
  40.     {
  41.         a[l] = d[v];
  42.         return;
  43.     }
  44.     int m = (l + r) / 2;
  45.     zap(2 * v, l, m);
  46.     zap(2 * v + 1, m + 1, r);
  47. }
  48.  
  49. int main()
  50. {
  51.     string s;
  52.     cin >> s;
  53.     int n = s.size();
  54.    
  55.     int m;
  56.     cin >> m;
  57.     while (m--)
  58.     {
  59.         int l, r;
  60.         cin >> l >> r;
  61.         if (l > r) swap(l, r);
  62.        
  63.         modify(1, 1 ,n ,l ,r);
  64.     }
  65.     zap(1, 1, n);
  66.     for(int i = 1; i <= n; i++)
  67.     {
  68.         if (a[i] % 2)
  69.         {
  70.             if ('a' <= s[i - 1] <= 'z' ) s[i - 1] = char('A' + int(s[i - 1] - 'a'));
  71.             else s[i-1]=  char('a' + int(s[i - 1] - 'A'));
  72.         }
  73.     }
  74.    
  75.     cout << s;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement