fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. ios::sync_with_stdio(false);
  6. cin.tie(nullptr);
  7.  
  8. int n;
  9. cin >> n;
  10. vector<int> zap(n);
  11. for (int i = 0; i < n; i++) cin >> zap[i];
  12. cin.ignore();
  13.  
  14. string tekst;
  15. getline(cin, tekst);
  16.  
  17. int sp = 0, liczb = 0, slow = 0, zda = 0, pal = 0;
  18.  
  19. for (int i = 0; i < (int)tekst.size(); i++)
  20. if (tekst[i] == ' ') sp++;
  21.  
  22. for (int i = 0; i < (int)tekst.size();) {
  23. if (isdigit(tekst[i])) {
  24. liczb++;
  25. while (i < (int)tekst.size() && isdigit(tekst[i])) i++;
  26. } else i++;
  27. }
  28.  
  29. vector<string> wyrazy;
  30. for (int i = 0; i < (int)tekst.size();) {
  31. if (isalpha(tekst[i])) {
  32. string tmp = "";
  33. while (i < (int)tekst.size() && isalpha(tekst[i])) {
  34. tmp += tekst[i];
  35. i++;
  36. }
  37. wyrazy.push_back(tmp);
  38. slow++;
  39. } else i++;
  40. }
  41.  
  42. string cz = "";
  43. for (int i = 0; i < (int)tekst.size(); i++) {
  44. char z = tekst[i];
  45. if (z == '.') {
  46. int ok = 0;
  47. for (int j = 0; j < (int)cz.size(); j++)
  48. if (isalpha(cz[j])) { ok = 1; break; }
  49. if (ok) zda++;
  50. cz = "";
  51. } else cz += z;
  52. }
  53.  
  54. for (int i = 0; i < (int)wyrazy.size(); i++) {
  55. string a = wyrazy[i];
  56. for (int j = 0; j < (int)a.size(); j++) a[j] = tolower(a[j]);
  57. string b = a;
  58. reverse(b.begin(), b.end());
  59. if (a == b) pal++;
  60. }
  61.  
  62. for (int i = 0; i < n; i++) {
  63. if (zap[i] == 1) cout << sp;
  64. else if (zap[i] == 2) cout << liczb;
  65. else if (zap[i] == 3) cout << slow;
  66. else if (zap[i] == 4) cout << zda;
  67. else cout << pal;
  68. cout << " ";
  69. }
  70. }
  71.  
Success #stdin #stdout 0.01s 5276KB
stdin
5
2 4 1 3 5
domEk  K5k45. aLA.
stdout
2 2 3 4 3