AquaBlitz11

Infant Care Rooms

Mar 18th, 2019
230
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.89 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. bool check(string a, string b) {
  5.     return a[0] == b[0] || a[1] == b[1];
  6. }
  7.  
  8. int main()
  9. {
  10.     int n;
  11.     cin >> n;
  12.     vector<stack<string>> v(n);
  13.     for (int i = 0; i < n; ++i) {
  14.         string s;
  15.         cin >> s;
  16.         v[i].push(s);
  17.     }
  18.  
  19.     for (int i = 0; i < v.size(); ++i) {
  20.         while (i < v.size() && v[i].empty())
  21.             v.erase(v.begin()+i);
  22.         if (i >= v.size()) break;
  23.         if (i-3 >= 0 && check(v[i-3].top(), v[i].top())) {
  24.             v[i-3].push(v[i].top());
  25.             v[i].pop();
  26.             i = i-4;
  27.         } else if (i-1 >= 0 && check(v[i-1].top(), v[i].top())) {
  28.             v[i-1].push(v[i].top());
  29.             v[i].pop();
  30.             i = i-2;
  31.         }
  32.     }
  33.  
  34.     printf("%d\n", v.size());
  35.     for (int i = 0; i < v.size(); ++i)
  36.         printf("%d ", v[i].size());
  37.  
  38.     return 0;
  39. }
Add Comment
Please, Sign In to add comment