Cách nhiệt

Xem dạng PDF

Gửi bài giải


Điểm: 0,09 (OI)
Giới hạn thời gian: 0.38s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Nguồn bài:
POI 2001/2002
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Cho một dãy ~N~ viên gạch lần lượt có độ cách nhiệt là các số ~a_{1}~ ...~a_{N}~. Nếu xếp lần lượt các viên gạch theo trình tự đó thì độ cách nhiệt cả khối là ~a_{1} + a_{2} + \dots + a_{N} + max(0, a_{2} - a_{1}) + max(0, a_{3} - a_{2}) + \dots + max(0, a_{N} - a_{N - 1})~. Nhiệm vụ của bạn là tìm cách xếp sao cho độ cách nhiệt của cả khối là lớn nhất có thể.

Input

  • Dòng đầu ghi số nguyên dương ~N~ ~(0 < n \leq 10^{5})~.
  • ~N~ dòng sau mỗi dòng ghi một số ~a_{i}~ ~(1 \leq i \leq N~ và ~1 \leq a_{i} \leq 10000)~.

Output

Ghi trên một dòng kết quả cần tìm.

Sample Input

4
5
4
1
7

Sample Output

24

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • -1
    zatarainbow  đã bình luận lúc 18, Tháng 9, 2024, 8:07

    include <bits/stdc++.h>

    using namespace std; typedef long long l; l n,a[100009],i,s=0; int main() { iosbase::syncwith_stdio(false); cin.tie(nullptr);cout.tie(nullptr); freopen("INSUL.INP","r",stdin); freopen("INSUL.OUT","w",stdout); cin>>n; for(i=1;i<=n;i++) {cin>>a[i];s+=a[i];} sort(a+1,a+n+1); for(i=(n+1)/2+1;i<=n;i++) s=s+(a[i]-a[n-i+1]); cout<<s; return 0; } //https://top1zata.blogspot.com


  • -5
    vminhlaptrinh  đã bình luận lúc 21, Tháng 8, 2024, 6:19

    Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.


    • -1
      thanhlong2188  đã bình luận lúc 12, Tháng 9, 2024, 9:13

      để vô cái ô spoil đi, cmt kiểu này nổ hũ người xem


  • 6
    DinhVantung0611  đã bình luận lúc 1, Tháng 3, 2024, 10:57

    Cách sắp xếp tôi ưu nhất là phần tử lớn nhất và nhỏ nhất luôn đi theo 1 cặp.