#include "stdio.h"
#include <string>
#include<iostream>
using namespace std;
int main()
{
int m, n;
scanf("%d %d", &n, &m);
int* sequence = new int[n];
for (int i = 0; i != n; ++i)
sequence[i] = i+1;
int* output = new int[2 * n];
for (int i = 0; i != 2 * n; ++i);
int* stack = new int[m];
int* goal = new int[n];
for (int i = 0; i != n; ++i)
scanf("%d", &goal[i]);
int indexgoal = 0;
int indexinput = 0;
int indexstack = -1;
int indexoutput = 0;
int Flag = 1;
while (indexinput != n && indexgoal != n && indexstack != m)
{
if (goal[indexgoal] == sequence[indexinput])
{
++indexstack;
output[indexoutput++] = 1;
if (indexstack == m) { Flag = 0; break; }
++indexgoal;
++indexinput;
--indexstack;
output[indexoutput++] = 0;
}
else if (goal[indexgoal] < sequence[indexinput])
{
if (goal[indexgoal] == stack[indexstack])
{
output[indexoutput++] = 0;
--indexstack;
++indexgoal;
}
else
{
Flag = 0; break;
}
}
else
{
++indexstack;
output[indexoutput++] = 1;
if (indexstack == m ) { Flag = 0; break;}
stack[indexstack] = sequence[indexinput];
++indexinput;
}
}
while (indexstack != -1)
{
--indexstack;
output[indexoutput++] = 0;
}
if (Flag == 1) {
for (int i = 0; i != 2 * n; ++i)
{
if (output[i] == 1)
printf("push\n");
else
printf("pop\n");
}
}
else
printf("No\n");
return 0;
}
列车调度(Train)
最新推荐文章于 2020-11-28 21:27:12 发布