Advertisement
MathQ_

Untitled

Aug 19th, 2021
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.37 KB | None | 0 0
  1. int main() {
  2.     string s;
  3.     getline(cin, s);
  4.     vector<pair<string, int>> parsed;
  5.     for (int i = 0; i < sz(s); ++i) {
  6.         string now;
  7.         if (s[i] == '<') {
  8.             if (s[i + 1] == '/') {
  9.                 parsed.push_back({now + s[i + 2], 2});
  10.                 i += 3;
  11.             } else {
  12.                 parsed.push_back({now + s[i + 1], 1});
  13.                 i += 2;
  14.             }
  15.         } else if ('a' <= s[i] && s[i] <= 'z') {
  16.             while (i < sz(s) && 'a' <= s[i] && s[i] <= 'z') {
  17.                 now += s[i]; ++i;
  18.             }
  19.             --i;
  20.             parsed.push_back({now, 0});
  21.         } else {
  22.             while (i < sz(s) && s[i] == ' ') {
  23.                 now += s[i]; ++i;
  24.             }
  25.             --i;
  26.             parsed.push_back({now, 0});
  27.         }
  28.     }
  29.     int m = sz(parsed);
  30.     string t;
  31.     for (int i = 0; i < m; ++i) {
  32.         if (parsed[i].se == 0) {
  33.             t += parsed[i].fi;
  34.         } else {
  35.             int cur = 1, j = i; ++i;
  36.             while (i < m && cur) {
  37.                 if (parsed[i].fi == parsed[j].fi) {
  38.                     if (parsed[i].se == 1) {
  39.                         ++cur;
  40.                     } else {
  41.                         --cur;
  42.                     }
  43.                 }
  44.                 ++i;
  45.             }
  46.             --i;
  47.         }
  48.     }
  49.     cout << t << '\n';
  50.     return 0;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement