L2-032 彩虹瓶

#include <bits/stdc++.h>

using namespace std;

const int N = 1010;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n, m, k;
    cin >> n >> m >> k;
    vector<int> v(n + 1);
    for (int _ = 1; _ <= k; _++) {
        vector<int> c(n + 1);
        for (int i = 1; i <= n; i++) {
            cin >> c[i];
        }
        bool ok = true;
        stack<int> st;
        int cnt = 1;
        for (int i = 1; i <= n; i++) {
            if (c[i] == cnt) {
                cnt++;
            } else {
              //先看看货架顶端的一箱是不是下一个要装填的颜色,如果是就取下来装填
                while (st.size() && st.top() == cnt) {
                    cnt++; st.pop();
                } 
                st.push(c[i]);
                if (st.size() > m) {
                    ok = false;
                    break;
                }
            } 
        }
        while (st.size())  {
            if (st.top() == cnt) {
                cnt++; 
                st.pop();
            }
            else {
                ok = false; 
                break;
            }
        }
        //cout << cnt << "\n";
        if (ok) cout << "YES" << "\n";
        else cout << "NO" << "\n";
    }

    return 0;
}
posted @   Xxaj5  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
历史上的今天:
2020-04-13 基础练习 完美的代价
2020-04-13 基础练习 分解质因数
点击右上角即可分享
微信分享提示