1051 Pop Sequence(25 分)

#include<iostream>
#include<stack>
using namespace std;
stack<int>q;
int m, k, n;
int main()
{
    scanf("%d%d%d", &m, &n, &k);
    while (k--)
    {
        while (!q.empty())q.pop();
        int a[1010];
        bool f = true;
        for (int i = 0; i<n; i++)
        {
            scanf("%d", &a[i]);
        }
        int now = 1, i = 0;
        while (i<n)
        {
            while (now <= a[i] && q.size()<m)q.push(now++);
            if (q.empty())break;
            int v = q.top();
            q.pop();
            if (v != a[i])
            {
                f = false;
                break;
            }
            i++;
        }
        if (f)printf("YES\n");
        else printf("NO\n");
    }
    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容