Guest User

Untitled

a guest
Sep 20th, 2014
1,048
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.02 KB | None | 0 0
  1. #include <cstdio>
  2. #include <iostream>
  3. #include <string>
  4. #include <sstream>
  5. using namespace std;
  6.  
  7. const int Maxn = 100005;
  8. const int Maxl = 26;
  9.  
  10. int t;
  11. string s;
  12. int freq[Maxn][Maxl];
  13. int q;
  14. int tk[Maxl], pnt;
  15.  
  16. int main()
  17. {
  18.     scanf("%d", &t);
  19.     for (int tc = 1; tc <= t; tc++) {
  20.         printf("Case #%d:\n", tc);
  21.         getline(cin, s); getline(cin, s);
  22.         for (int i = 1; i <= s.length(); i++) {
  23.             for (int j = 0; j < Maxl; j++) freq[i][j] = freq[i - 1][j];
  24.             freq[i][s[i - 1] - 'A']++;
  25.         }
  26.         scanf("%d", &q);
  27.         while (q--) {
  28.             char com; int l, r; scanf(" %c %d %d", &com, &l, &r); l++; r++;
  29.             if (com == 's') {
  30.                 for (int i = 0; i < Maxl; i++)
  31.                     tk[i] = freq[r][i] - freq[l - 1][i];
  32.                 pnt = 0;
  33.                 for (int i = l; i <= r; i++) {
  34.                     while (!tk[pnt]) pnt++;
  35.                     for (int j = 0; j < Maxl; j++) freq[i][j] = freq[i - 1][j];
  36.                     freq[i][pnt]++;
  37.                     tk[pnt]--;
  38.                 }
  39.             } else
  40.                 for (int i = 0; i < Maxl; i++)
  41.                     printf("%d%c", freq[r][i] - freq[l - 1][i], i + 1 < Maxl? ' ': '\n');
  42.         }
  43.     }
  44.     return 0;
  45. }
Advertisement
Add Comment
Please, Sign In to add comment