假设t[i]>t[i+1],化简后可知交换前为t[i],交换后为t[i+1],显然交换后更好
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e5+10;
int t[N];
int n;
int main(){
cin>>n;
for(int i=0;i<n;i++) cin>>t[i];
sort(t,t+n);
ll res=0;
for(int i=0;i<n;i++) res+=t[i]*(n-1-i);
cout<<res<<endl;
}
想请问一下为什么让for循环中的i从1开始,然后把(n-1-i)变成(n-i)之后会WA啊
可以这样写,但是要相应的修改读入从1到n,排序也从1到n
懂了,之前排序的时候忘记+1了,谢谢大佬