#include<bits/stdc++.h>
int* stockSpan(int *price, int size) {
// Write your code here
int *output=new int[size];
stack<int>input;
stack<int>auxiliary;
for(int i=0;i<size;i++){
if(input.size()==0){
input.push(price[i]);
output[i]=1;
}
else{
if(input.top()<price[i]){
while(input.top()<price[i] && !input.empty()){
auxiliary.push(input.top());
input.pop();
}
output[i]=auxiliary.size()+1;
while(!auxiliary.empty()){
input.push(auxiliary.top());
auxiliary.pop();
}
input.push(price[i]);
}
else{
input.push(price[i]);
output[i]=1;
}
}
}
return output;
}
This is my approach to solve the stock span problem with two stacks but I am getting a runtime error. Please point out the mistake.