天天看點

牛客OI賽制測試賽2 C :數列下标

#include<bits/stdc++.h>
using namespace std;

const int maxn=10000+100;

struct Que{

    int val,id; 
}que[maxn];
int ans[maxn];

int main(){
    
    int top=0;
    int n;
    scanf("%d",&n);
    for(int i=1,val;i<=n;i++){
        
        scanf("%d",&val);
        while(top && que[top].val<val) ans[que[top].id]=i,top--;
        que[++top]=Que{val,i};
    }
    for(int i=1;i<=n;i++) printf("%d%c",ans[i],i==n?'\n':' ');
}      
下一篇: Castle

繼續閱讀