挺好的一个题目.考虑每组逆序对的贡献,就是,然后有组,然后答案就算它们相乘,注意n==1时输出0.然后注意在做乘法的时候把n%mod.因为n很大.

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod=1e9+7;
ll qp(ll a,ll b)
{
    ll res=1;
    while(b)
    {
        if(b&1)    res=res%mod*a%mod;
        a=a%mod*a%mod;
        b>>=1;
    }return res%mod;
}

int main()
{
    ll n;cin>>n;
    if(n==1) cout<<0<<'\n';
    else     cout<<(n%mod)*((n-1)%mod)%mod*qp(2ll,n-2ll)%mod*qp(2ll,mod-2ll)%mod<<'\n';
    return 0;
}