сейчас я пытаюсь решить проблему конкурентного программирования, но всякий раз, когда я пытаюсь вывести sh на вектор (bb), это дает мне ошибку. Я пытался исправить это, переключаясь со стека на вектор и просто пытаясь вывести обычное целое число без переменных, * * * *, но мне не повезло.
#include <bits/stdc++.h>
#include <iostream>
#include <stack>
using namespace std;
int main(){
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int t, n;
cin >> t;
for(int e = 0; e < t; e++){
cin >> n;
int want = 1, temp;
bool flag = true;
stack<int> mountain;
vector<int> bb;
for(int i = 0; i < n; i++){
cin >> temp;
mountain.push(temp);
}
while(!mountain.empty() || !bb.empty()){
if(mountain.top() == want){
mountain.pop();
want++;
}else if(!bb.empty() && bb.back() == want){
bb.pop_back();
want++;
}else if(mountain.size() > 1){
bb.push_back(mountain.top()); // <-----------------
mountain.pop();
}else{
cout << "N\n";
flag = false;
break;
}
if(flag && want == n + 1) cout << "Y\n";
}
}
return 0;
}
Если вам нужен какой-либо контекст для проблемы, его можно найти здесь .