Cách nhiệt

View as PDF

Submit solution


Points: 0.09 (partial)
Time limit: 0.38s
Memory limit: 256M
Input: stdin
Output: stdout

Problem source:
POI 2001/2002
Problem type
Allowed languages
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

Comments

Please read the guidelines before commenting.



  • -1
    zatarainbow  commented on Sept. 18, 2024, 8:07 a.m.

    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  commented on Aug. 21, 2024, 6:19 a.m.

    This comment is hidden due to too much negative feedback. Show it anyway.


    • -1
      thanhlong2188  commented on Sept. 12, 2024, 9:13 a.m.

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


  • 5
    DinhVantung0611  commented on March 1, 2024, 10:57 a.m.

    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.