Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- using namespace std;
- const int N = int(1e5)+92;
- int d[4*N], a[N];
- void push(int v, int l, int r)
- {
- if (l != r)
- {
- d[2 * v] += d[v];
- d[2 * v + 1] += d[v];
- d[v] = 0;
- }
- }
- void modify(int v, int l, int r, int x, int y)
- {
- // cout << v << ' ' << l << ' ' << r << ' ' << x << ' ' << y <<'\n';
- if (d[v] != 0) push(v, l, r);
- if (l > x || r < x) return;
- if (l >= x && r <= y)
- {
- d[v]++;
- push(v, l, r);
- return;
- }
- int m = (l + r) / 2;
- modify(2 * v, l, m, x, y);
- modify(2 * v + 1, m + 1, r, x, y);
- }
- void zap(int v, int l, int r)
- {
- push(v, l, r);
- if (l == r)
- {
- a[l] = d[v];
- return;
- }
- int m = (l + r) / 2;
- zap(2 * v, l, m);
- zap(2 * v + 1, m + 1, r);
- }
- int main()
- {
- string s;
- cin >> s;
- int n = s.size();
- int m;
- cin >> m;
- while (m--)
- {
- int l, r;
- cin >> l >> r;
- if (l > r) swap(l, r);
- modify(1, 1 ,n ,l ,r);
- }
- zap(1, 1, n);
- for(int i = 1; i <= n; i++)
- {
- if (a[i] % 2)
- {
- if ('a' <= s[i - 1] <= 'z' ) s[i - 1] = char('A' + int(s[i - 1] - 'a'));
- else s[i-1]= char('a' + int(s[i - 1] - 'A'));
- }
- }
- cout << s;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement