RT,不仅没TLE,还相当快。数据该加强了
#include<bits/stdc++.h>
using namespace std;
int a[10000000],ans[10000000];
int find(int p,int num){
if(a[p]>num) return p;
if(ans[p]==-1) return -1;
return find(ans[p],num);
}
int main(){
int n;
scanf("%d",&n);
for(int i=0;i<n;i++) scanf("%d",a+i);
ans[n-1]=-1;
for(int i=n-2;i>=0;i--){
if(a[i]<a[i+1]) ans[i]=i+1;
else if(a[i]==a[i+1]) ans[i]=ans[i+1];
else{
ans[i]=find(i+1,a[i]);
}
}
for(int i=0;i<n;i++) printf("%d ",ans[i]+1);
return 0;
}
评测记录