我也不知道咋想的 竟然用前缀和 其实直接写完全可以 最后的ans一定要开long long...
#include <cstdio> #include <algorithm> using namespace std; const int maxn=100010; int main() { int n; int a[maxn]; scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%d",&a[i]); } sort(a,a+n); int sum[maxn]={0}; sum[n-1]=a[n-1]; for(int i=n-2;i>=0;i--) { sum[i]=a[i]+sum[i+1]; } long long int ans=0; for(int i=0;i<n-1;i++) { ans+=sum[i]; } printf("%lld\n",ans); return 0; }