fork download
  1. #include <cmath>
  2. #include <cstdio>
  3. #include <vector>
  4. #include <iostream>
  5. #include <string>
  6. #include <map>
  7. #include <algorithm>
  8. using namespace std;
  9.  
  10. int main() {
  11. map<string, int>m;
  12. int *k;
  13. string s, temp;
  14. int t, n,sum;
  15. cin >>t;
  16. while (t--) {
  17. cin >> s;
  18. n = s.size();
  19. k = new int[n + 1]; k[0] = 0;
  20. for (int i = 1; i < n + 1; i++)k[i] = k[i - 1] + i - 1;
  21. m.clear();
  22. for (int i = 1; i < n; i++) {
  23. for (int j = 0; j < n - i + 1; j++) {
  24. temp = s.substr(j,i);
  25. sort(temp.begin(), temp.end());
  26. m[temp]++;
  27. }
  28. }
  29. sum = 0;
  30. std::map<string, int>::iterator i = m.begin();
  31. while (i != m.end()) {
  32. sum += k[i->second];
  33. i++;
  34. }
  35. cout << sum << endl;
  36. }
  37. return 0;
  38. }
Success #stdin #stdout 0s 3468KB
stdin
1
aa
stdout
1