【アルゴリズム問題】C++プログラミングにより、与えられたシーケンスが正しくスタックされたシーケンスであるか否かを判断する



これはある情報アプリ会社の面接問題です.
数1,2,3,...,n小さい順にスタックに入り、1つのシーケンスを与え、正しいスタック出シーケンスであるか否かを判断する.例えばn=5であれば、「1,4,3,5,2」は正しいスタックシーケンスであり、「5,4,3,1,2」はそうではない.
方法は,元のスタックから出ていない数を1つの補助スタックで保存し,次の数に遭遇した場合に,出スタックルールに合致するか否かを判断する.コードは次のとおりです.
 
#include 
#include 

using namespace std;

bool rightOrder(int a[], int n) {
	int i, j, m = 0;	//m          
	stack s;		//           s 
	for (i=0; i m + 1) {
			for (j=m+1; j