#include iostream
#include stack
using namespace std;
void clearStack(stackint &s)
{
stackint().swap(s);
}测试可用
int main()
{
int n,max,k;
cinnmaxk;
int temp[n+1],num=0;
int isJ=0,bot=1,sc=0;
stackint s;使用其他操作之前必须要判空
for(int i=0 ; ik ; i++)
{
for(int j=1 ; j=n; j++)
{
cintemp[j];
}
isJ=0;
sc=0;
bot=1;
clearStack(s);
while( 1 )
{
if(bot==n+1)
{
coutYESendl;
break;
}
else if(sc==n&&bot!=s.top())
if(!isJ&&scn)不判断,那就是输入
{
cintemp;
sc++;
if(bot==temp[sc])
{
bot++;
}
else
{
s.push(temp[sc]);
if(s.size()max)
{
coutNOendl;栈满溢出
break;
}
}
isJ++;
}
elsejudge
{
if(!s.empty())
if(s.top()==bot)equals
{
bot++;
s.pop();
}
else if(s.top()!=bot&&sc==n)
{
coutNOendl;无法装填错误
break;
}
else
isJ=0;
else
isJ=0;
}
}
}
}