Stock span problem

PHOTO EMBED

Tue Jun 21 2022 13:11:29 GMT+0000 (Coordinated Universal Time)

Saved by @Ranjan_kumar #c++

vector<int> v;
stack<pair<int,int>> s;        //first is ngl and second is its index
for(int i=0;i<size;i++)
  {
    if(s.size()==0)
      {
        v.push_back(-1);
      }
    else if(s.size()>0 && s.top().first<=arr[i])
      {
        v.push_back(s.top().second)
      }
    else if(s.size()>0 && s.top().first<=arr[i])
      {
        while(s.size()>0 && s.top().first<=arr[i])
          {
            s.pop();
          }
        if(s.size()==0)
          v.push_back(-1);
        else v.push_back(s.top().second)
      }
    s.push({arr[i],i});
  }
  return v;                         //NGL we got

for(int i=0;i<v.size();i++)
  {
    v[i]=i-v[i];
  }
return v;                           //final answer
content_copyCOPY

https://www.youtube.com/watch?v=p9T-fE1g1pU&list=PL_z_8CaSLPWdeOezg68SKkeLN4-T_jNHd&index=6