Điểm:
1100 (p)
Thời gian:
1.0s
Bộ nhớ:
256M
Input:
bàn phím
Output:
màn hình
Cho số nguyên dương \(N\) và dãy số có \(N\) số nguyên \(a_1,a_2,...,a_N\).
Yêu cầu: Bạn hãy in ra tổng của tất cả các giá trị \(∣a_i - a_j∣\) thỏa mãn \(1 \le i < j \le N\).
Input
- Dòng đầu tiên chứa số nguyên dương \(N\) \((1 \le N \le 2 \times 10^5)\).
- Dòng tiếp theo chứa dãy \(a_1,a_2,...,a_N\) \((-10^9 \le a_i \le 10^9)\), mỗi số cách nhau một khoảng trắng.
Output
- In ra đáp án bài toán sau khi thực hiện yêu cầu đề bài.
Scoring
- Subtask \(1\) (\(50\%\) số điểm): Có \(N \le 1000\).
- Subtask \(2\) (\(50\%\) số điểm): Không có ràng buộc gì thêm.
Example
Test 1
Input
3
5 1 2
Output
8
Note
Ta có \(∣5-1∣ + ∣5-2∣ + ∣1-2∣ = 8\).
Bình luận
Mình xin giải thích ý tưởng của bài này(nếu các bạn đọc không hiểu sol của anh \(Shiba\)):
Đầu tiên, chúng ta sắp xếp lại dãy số a theo thứ tự không giảm. Sau đó, với mỗi phần tử \(a_i\), ta tính tổng của các giá trị \(|a_i - a_j|\) với \(j > i\). Tổng này được tính bằng công thức \((i+1) \times (n-i-1) \times (a_{i+1} - a_i)\). Giải thích công thức này như sau:
Cuối cùng, chúng ta cộng tổng các giá trị này lại để có được kết quả cuối cùng.
Code C++
Đây là code của bài này
Bình luận bị ẩn vì nhiều phản hồi tiêu cực. Nhấp vào đây để mở.
Mới học mà sao làm được bài này hay vậy ?
Bình luận bị ẩn vì nhiều phản hồi tiêu cực. Nhấp vào đây để mở.
Bro tôi nghĩ bạn sắp bị ban đấy
nhìn lại mik cx chả khác j nó mà phán như thật :))
đúng thế, bạn sẽ bị ban đấy kiệt
bủh
Bro à, tôi xin thông báo vì bạn đã hết cứu:))
rảnh tự dưng khai
muốn thầy Small nói:"Con acc này đã bị bannnnnnnnnnnnnnnn"
và teo teo teo tèo téo teo :(((((((((((nooooooooooo
SHUT UP NIGER
Can I report for this unrespect?
hết cứu 🙂
chưa ban à :))
Hết cứu =))))
muốn ban acc hay sao vậy?
tự hủy cực mạnh:)
Báo thầy Nhỏ nhỉ ? =)))
oke lun