#include<iostream>
#include<fstream>
#include<algorithm>
using namespace std;
#define ulli unsigned long long int
ifstream input("SUM.INP");
ofstream output("SUM.OUT");
ulli S[200001];
int main(){
ulli res = 0;
int N;
input >> N;
ulli arr[N+1];
for(int i = 1; i <= N;i++){
input >> arr[i];
}
sort(arr+1,arr+N+1);
for(int i = 1; i <= N;i++){
S[i] = S[i-1]+arr[i];
}
for(int i = N;i > 0;i--){
res += arr[i]*(i-1)-S[i-1];
}
output << res << endl;
}
Giải pháp cho bài này đã đúng chưa?
Giải pháp của bạn là gì, độ phức tạp ra sao?
2 Likes
Do S[]
là global nên mặc định khởi tạo bằng 0.
Như vậy là ổn, có thể thay bằng res += arr[i] * i - S[i]
.
3 Likes