60分,求调
查看原帖
60分,求调
636097
liumuyvan楼主2022/10/19 11:28
#include<bits/stdc++.h>
using namespace std;
int a[3000010],ans[3000010];
stack <int> st;
int main(){
	int n;
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%d",&a[i]);
	}
	for(int i=n;i>=1;i--){
		
		while(st.size()&&a[st.top()]<a[i]){
			st.pop();
		} 
		if(!st.size()){
			ans[i]=0;
		}else{
			ans[i]=st.top();
		}
		st.push(i);
	}
	for(int i=1;i<=n;i++){
		cout<<ans[i]<<" ";
	}
	return 0;
} 

后四点WA

2022/10/19 11:28
加载中...