Advertisement
STANAANDREY

sim osepi clsV

Mar 7th, 2021
759
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.49 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. signed main() {
  5.     freopen("ghiocel.in", "r", stdin);
  6.     freopen("ghiocel.out", "w", stdout);
  7.     function<bool(string)> check[4];
  8.     check[0] = [](string s)->bool {
  9.         return is_sorted(begin(s), end(s), [](char a, char b) {
  10.             return a <= b;
  11.         });
  12.     };
  13.     check[1] = [](string s)->bool {
  14.         return is_sorted(s.rbegin(), s.rend(), [](char a, char b) {
  15.             return a <= b;
  16.         });
  17.     };
  18.     check[2] = [=](string s)->bool {
  19.         unsigned n = s.size();
  20.         if (check[0](s) || check[1](s)) {
  21.             return false;
  22.         }
  23.         unsigned p = 1;
  24.         for (; p < n; p++) {
  25.             if (s[p] < s[p - 1]) {
  26.                 break;
  27.             }
  28.         }
  29.         return check[0](s.substr(0, p)) && check[1](s.substr(p));
  30.     };
  31.     check[3] = [=](string s)->bool {
  32.         unsigned n = s.size();
  33.         if (check[0](s) || check[1](s)) {
  34.             return false;
  35.         }
  36.         unsigned p = 1;
  37.         for (; p < n; p++) {
  38.             if (s[p] > s[p - 1]) {
  39.                 break;
  40.             }
  41.         }
  42.         return check[1](s.substr(0, p)) && check[0](s.substr(p));
  43.     };
  44.  
  45.     int n, ans[4] = {};
  46.     cin >> n;
  47.     for (int i = 0; i < n; i++) {
  48.         string s;
  49.         cin >> s;
  50.         for (int j = 0; j < 4; j++) {
  51.             ans[j] += check[j](s);
  52.         }
  53.     }
  54.     for (int i = 0; i < 4; i++) {
  55.         cout << ans[i] << "\n";
  56.     }
  57.     return 0;
  58. }
  59.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement