Я должен печатать самый большой элемент стека (используя vector для реализации стека здесь) всякий раз, когда я сталкиваюсь с запросом «Q», он работает просто отлично, когда я запускаю его для некоторых примеров тестовых случаев, но всякий раз, когда я отправляю код, который он даетошибка сегментации.
, когда запрос A 10 Добавить 10 в стек , когда запрос R элемент pop из стека , когда запрос Q printсамый большой элемент в стеке
#include <stdio.h>
#include <bits/stdc++.h>
#include <iostream>
#include <vector>
using namespace std;
int main() {
int t=0;
cin>>t;
for(int x=0;x<t;x++){
printf("Case %d:\n",x+1);
int q=0;
cin>>q;
vector<int> myvec;
vector<int> trackvec;
int top=-1;
for(int i=0;i<q;i++){
string s;
cin>>s;
if(s=="A"){
int num=0;
cin>>num;
myvec.push_back(num);
if(i==0){trackvec.push_back(num);top++;}
else{
if(num>trackvec[top]){
trackvec.push_back(num);
top++;
}
else{
trackvec.push_back(trackvec[top]);
top++;
}
}
}
else if(s=="R"){
myvec.pop_back();
trackvec.pop_back();
top--;
}
else if(s=="Q" && top==-1){
cout<<"Empty"<<endl;
}
else if(s=="Q"){
cout<<trackvec[top]<<endl;
}
}
}
}
The trackvec here is to keep track of the largest element
Sample input:
2
7
A 10
A 5
Q
A 100
Q
R
Q
6
A 5
Q
R
Q
R
R