Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdio>
- #include <iostream>
- #include <string>
- #include <sstream>
- using namespace std;
- const int Maxn = 100005;
- const int Maxl = 26;
- int t;
- string s;
- int freq[Maxn][Maxl];
- int q;
- int tk[Maxl], pnt;
- int main()
- {
- scanf("%d", &t);
- for (int tc = 1; tc <= t; tc++) {
- printf("Case #%d:\n", tc);
- getline(cin, s); getline(cin, s);
- for (int i = 1; i <= s.length(); i++) {
- for (int j = 0; j < Maxl; j++) freq[i][j] = freq[i - 1][j];
- freq[i][s[i - 1] - 'A']++;
- }
- scanf("%d", &q);
- while (q--) {
- char com; int l, r; scanf(" %c %d %d", &com, &l, &r); l++; r++;
- if (com == 's') {
- for (int i = 0; i < Maxl; i++)
- tk[i] = freq[r][i] - freq[l - 1][i];
- pnt = 0;
- for (int i = l; i <= r; i++) {
- while (!tk[pnt]) pnt++;
- for (int j = 0; j < Maxl; j++) freq[i][j] = freq[i - 1][j];
- freq[i][pnt]++;
- tk[pnt]--;
- }
- } else
- for (int i = 0; i < Maxl; i++)
- printf("%d%c", freq[r][i] - freq[l - 1][i], i + 1 < Maxl? ' ': '\n');
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment