看到范围,随便打个 水过去,理论上卡满可能会TLE,但就是过了……
#include <cstdio>
#include <ctype.h>
const int bufSize = 1e6;
inline char nc()
{
#ifdef DEBUG
return getchar();
#endif
static char buf[bufSize],*p1 = buf,*p2 = buf;
return p1==p2&&(p2=(p1=buf)+fread(buf,1,bufSize,stdin),p1==p2)?EOF:*p1++;
}
template<typename T>
inline T read(T &r)
{
static char c;
r=0;
for(c = nc();!isdigit(c);) c = nc();
for(;isdigit(c);c=nc()) r = r * 10 + c - 48;
return r;
}
const int maxn = 1e4 + 100;
int n;
int a[maxn];
int b[maxn];
int main()
{
read(n);
for(int i = 1;i<=n;++i) read(a[i]);
for(int i = 1;i<=n;++i)
{
for(int j = i + 1;j<=n;++j)
if (a[j] > a[i])
{
b[i] = j;
break;
}
}
for(int i = 1;i<=n;++i) printf("%d ",b[i]);
return 0;
} 
京公网安备 11010502036488号