STL_A1051ポップシーケンス(25点)

https://pintia.cn/problem-sets/994805342720868352/problems/994805427332562944

/ * 
*後に進んだ、スタックを使用してください
*横取りスタック
ノートスタック容量* 
* / 
の#include <iostreamの>
 使用して 、名前空間STD; 
する#include <cstdioを> 
する#include <スタック> 
スタック < int型 > スタック;
 constの int型 MAXN = 1010 ;
 int型ARR [MAXN]; 

int型のmain(){
     int型、容量、長さ、チェック
    scanfの(" %D%D%D "、および容量、および長さ、およびチェック);
     一方は、(チェック- ){
         しばらく(スタック!。空の()){ //プリエンプションスタック
            Stack.pop(); 
        } 
        のためのINT I = 1 ; I ++は、私は=長さ< ){ 
            scanfの(" %Dを"&ARR [I]は); // なお、ループの入力形式およびARR [I] 
        }
         INT =今1。;
         BOOLをフラグに= trueにのためにINT I = 1 <; =長さI ++のIは{)
            Stack.push(I)
            IF(Stack.size()> 容量){ 
                フラグに = falseにBREAK; 
            } 
            // 現在の要素と同一のスタック順序の最上位要素位置
            一方(Stack.empty()&& Stack.top()==!{ARR [今])
                Stack.pop();  ++ ; 
            } 
        } 
        IF(Stack.empty()== trueにフラグに== && 真の){ 
            のprintf(" N- \ YES " ); 
        } { 
            のprintf(" NO \ N- " ); 
        } 
    } 
    戻り 0 ; 
}

おすすめ

転載: www.cnblogs.com/2o2o/p/11370679.html