思路:
c o d e code code
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
long long n;
long long a[1000100], f[1000100];
long long mod=1e9+7;
int main()
{
freopen("sum.in", "r", stdin);
freopen("sum.out", "w", stdout);
scanf("%lld", &n);
for(register int i=1; i<=n; i++)
scanf("%lld", &a[i]);
f[0]=1ll;
for(register int i=1; i<=n; i++)
f[i]=f[i-1]*2ll%mod;
sort(a+1, a+1+n);
register long long ans=0;
for(register long long i=1; i<=n; i++)
{
// cout<<ksm(n-i)*a[i]<<" "<<ksm(i-1)*a[i]<<endl;
ans=(ans-(f[n-i]-1ll)*a[i]%mod+(f[i-1]-1ll)*a[i]%mod+mod)%mod;
// cout<<ans<<endl;
}
printf("%lld", ans);
return 0;
}