N^2水过。。
#include<bits/stdc++.h>
using namespace std;
const int MAXN=8080;
int num[MAXN],ans[MAXN],arr[MAXN],sum[MAXN<<1];
int main()
{
int n,i,j;
while(scanf("%d",&n)!=EOF)
{
for(i=1;i<=n;i++)
scanf("%d",&num[i]);
for(i=1;i<=n;i++)
{
ans[i]=1;
memset(arr,0,sizeof(arr));
memset(sum,0,sizeof(sum));
for(j=i-1;j>=1;j--)
{
if(num[j]>num[i])
arr[j]=arr[j+1]+1;
else
arr[j]=arr[j+1]-1;
sum[arr[j]+n]++;
if(arr[j]==0)
ans[i]++;
}
for(j=i+1;j<=n;j++)
{
if(num[j]>num[i])
arr[j]=arr[j-1]+1;
else
arr[j]=arr[j-1]-1;
ans[i]+=sum[n-arr[j]];
if(arr[j]==0)
ans[i]++;
}
}
for(i=1;i<=n;i++)
printf("%d ",ans[i]);
printf("\n");
}
}