Advertisement
MiinaMagdy

514 - Rails

Sep 12th, 2022
993
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.86 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. #define ll long long
  6. #define endl '\n'
  7. #define sz(x) int(x.size())
  8. #define all(x) x.begin(), x.end()
  9.  
  10. int main() {
  11.     ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  12.     int n;
  13.     while (cin >> n, n) {
  14.         vector<int> nums(n);
  15.         while (cin >> nums[0], nums[0]) {
  16.             for (int i = 1; i < n; i++) cin >> nums[i];
  17.             stack<int> stk, station;
  18.             for (int i = n; i >= 1; i--) stk.push(i);
  19.             int idx = 0;
  20.             bool done = true;
  21.             while (done) {
  22.                 done = false;
  23.                 while (sz(station) && station.top() == nums[idx]) {
  24.                     idx++;
  25.                     done = true;
  26.                     station.pop();
  27.                 }
  28.                 while (sz(stk) && stk.top() != nums[idx]) station.push(stk.top()), stk.pop();
  29.                 if (sz(stk)) {
  30.                     done = true;
  31.                     idx++;
  32.                     stk.pop();
  33.                 }
  34.             }
  35.             cout << (idx == n ? "Yes" : "No") << endl;
  36.         }
  37.         cout << endl;
  38.     }
  39. }
  40.  
Tags: UVA CP3
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement