H - Give Me This Pizzahttps://vjudge.csgrandeur.cn/problem/Gym-101343H
#include<bits/stdc++.h>
using namespace std;
int p[100010];
int ans[100010];
int main()
{
int n;
stack<int>s;
cin>>n;
for(int i=0;i<n;i++)
scanf("%d",&p[i]);
for(int i=n-1;i>=0;i--)
{
if(!s.size())//s为空说明不存在值
ans[i]=-1;
else
{
while(s.size()&&p[i]>=s.top())s.pop();//把小于它的值都删掉
if(s.size())//s不为空说明存在值
ans[i]=s.top();
else//s为空说明不存在值
ans[i]=-1;
}
s.push(p[i]);
}
for(int i=0;i<n;i++)
printf("%d ",ans[i]);
}