#include<cstdio>
#include<cstdlib>
int h[1000001];
int high[1000001];
int cout[1000001];
int main()
{
int n;
freopen("lookup.out","w",stdout);
freopen("lookup.in","r",stdin);
scanf("%d\n",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&h[i]);
}
int top=n,num=1;
bool highest=true;
for(int i=n;i>=1;i--)
{
high[top]=h[i];
top--;
for(int j=top;j<=n;j++)
{
if(h[i]<high[j])
{
highest=false;
cout[num]=j;
num++;
break;
}
}
if(highest)
{
cout[num]=0;
num++;
}
highest=true;
}
for(int i=num-1;i>=1;i--)
{
printf("%d\n",cout[i]);
}
return 0;
}
USACO 2009 Mar Look Up 向右看齐
最新推荐文章于 2020-10-31 16:43:17 发布