#include #include #include #include using namespace std; long long n,an; pair a[1001],ans[1001]; long long fact(long long k, long long n) { if(k<0) return 0; if(k==0) return 1; if(k>n) return 0; //if(k==0) return 1; long long ans=n; for(int i=2; i<=k; i++) { ans=ans*(n-i+1)/i; } return ans; } int main() { freopen("median.in","r",stdin); freopen("median.out","w",stdout); scanf("%lld",&n); for(int i=1; i<=n; i++) { scanf("%lld",&a[i].first); a[i].second=i; } sort(a+1,a+n+1); for(int i=1; i<=n; i++) { long long p1=i-1,p2=n-i; long long p=min(p1,p2); an=0; for(int j=p; j>=0; j--) {an+=(fact(j+1,p1)*fact(j,p2)+fact(j,p1)*fact(j,p2))%1000007;} //an++; ans[i]=make_pair(a[i].second,an%1000007); } sort(ans+1,ans+n+1); for(int i=1; i<=n-1; i++) { printf("%lld ",ans[i].second); } printf("%lld\n",ans[n].second); return 0; }