L2-1 彩虹瓶
Time limit:400ms
Memory limit:64MB
后续更新思路,要熄灯了。。。。
ac代码:
#include<bits/stdc++.h>
using namespace std;
#define int long long
int n,m,k,num,now;
void solve(){
stack<int> s;
now = 1; //现在要放的编号
for(int i = 1;i <= n;++i){
cin>>num;
if(num == now){ //相等的话,还得继续看栈内的货物是否等于目前要放的编号
++now;
while(s.size() && s.top() == now)
++now,s.pop();
}
else{ //入栈并且判断
s.push(num);
if(s.size() > m){
string ss;getline(cin,ss);
break;
}
}
}
if(s.size() == 0)
cout<<"YES\n";
else
cout<<"NO\n";
}
signed main(){
cin>>n>>m>>k;
while(k--)
solve();
return 0;
}