[TIOJ] 1012Rails
題目連結:http://tioj.ck.tp.edu.tw/problems/1012
關於stack的經典問題,不過因為vector比stack快所以就使用了vector,寫到一半忘了為甚麼會有no的case,去翻以前的code才發現我智障QQ,好好模擬就OK了,以前的我用的方法好麻煩,現在這個雖然感覺也很麻煩,不過相比之下清爽多了XD
關於stack的經典問題,不過因為vector比stack快所以就使用了vector,寫到一半忘了為甚麼會有no的case,去翻以前的code才發現我智障QQ,好好模擬就OK了,以前的我用的方法好麻煩,現在這個雖然感覺也很麻煩,不過相比之下清爽多了XD
#include<bits/stdc++.h> #define endl '\n' using namespace std; int n,m; vector<int> sta,rep; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> n >> m; int cnt = 0; for(int i = 0; i < n; i++) { int a; cin >> a; while(!rep.empty()) sta.push_back(rep.back()),rep.pop_back(); if(sta.empty() || a > sta.back()) { for(int j = cnt+1; j <= a; j++) sta.push_back(j); cnt = a; } if(sta.back() == a) sta.pop_back(); else { for(int j = 0; j < m && sta.back() != a; j++) rep.push_back(sta.back()), sta.pop_back(); if(sta.back() == a) sta.pop_back(); else {cout << "no" << endl;return 0;} } } cout << "yes" << endl; }
留言
張貼留言