Doesnt pass first test case. 
#include
#include
using namespace std;
#define ll long long int
int main() {
ll n;
cin>>n;
ll a[n];
for(ll i=0;i<n;i++){
cin>>a[i];
}
stack s;
s.push(a[0]);
for(ll i=1;i<n;i++){
while(!s.empty() and s.top()<a[i]){
cout<<a[i]<<" “;
s.pop();
}
s.push(a[i]);
}
while(!s.empty()){
cout<<-1<<” ";
s.pop();
}
return 0;
}