LINETRIP - Hành trình trên trục Ox

Xem dạng PDF

Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift

Có ~N~ điểm nằm trên trục ~Ox~, điểm thứ ~i~ có tọa độ ~X_i~. Một người xuất phát từ tọa độ ~0~, muốn thực hiện một hành trình đi qua tất cả ~N~ điểm trên, mỗi điểm ít nhất một lần rồi quay trở về tọa độ ~0~. Hãy cho biết độ dài ngắn nhất của một hành trình như thế.

Input

  • Dòng đầu tiên gồm số nguyên ~N~ ~(1 ≤ N ≤ 100)~ - số điểm trên trục ~Ox~;
  • Dòng tiếp theo gồm ~N~ số nguyên ~X_1, X_2, ..., X_N~ ~(|X_i| ≤ 1000)~ - tọa độ của ~N~ điểm.

Output

  • In ra độ dài ngắn nhất của hình trình mà người đó thực hiện.

Sample

Input #1
3
-3 4 1
Output #1
14
Input #2

4 -3 -3 0 0



#### Output #2

6 ```

Hint

  • Trong ví dụ thứ nhất, một trong các hình trình ngắn nhất có thể là: ~0 → −3 → 1 → 4 → 0~.
  • Trong ví dụ thứ hai, một trong các hình trình ngắn nhất có thể là: ~0 → −3 → 0~.

Problem source: Kc97ble - Free Contest


Bình luận

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



  • 1
    hohoanghai5042011  đã bình luận lúc 1, Tháng 2, 2024, 10:13

    #include <bits/stdc++.h>

    using namespace std;

    const int pt=1e6+1;

    long long n,i,M[pt],len,a,b;

    int main() {

    cin>>n;
    
    for (i=0; i < n; i++)
    
        cin>>M[i];
    
    sort(M,M+n);
    
    a=M[0];
    
    b=M[n-1];
    
    len=0;
    

    if (a<0&&b<0)

       len=abs(a)*2;
    
     else if((a<=0&&b>0)||(a<0&&b> 0))
    
        len=abs(b-a)*2;
    
    else if (a>0&&b>0)
    
       len = b * 2;
    

    cout << len; }


  • 1
    hohoanghai5042011  đã bình luận lúc 1, Tháng 2, 2024, 10:11

    nhìn đoạn code trên và tham khảo giúp mình nhé


  • 0
    dinhvantung0611  đã bình luận lúc 9, Tháng 1, 2024, 10:36

    hành trình ngắn nhất: (khoảng cách từ 0 -> điểm nhỏ nhất) + (khoảng cách giữa điểm nhỏ nhất -> điểm lớn nhất) + (khoảng cách từ điểm 0 -> điểm lớn nhất)


  • 0
    gacon04  đã bình luận lúc 18, Tháng 7, 2023, 10:50

    Đây là code của mình viết bằng Java, bạn có thể tham khảo thử:

    import java.util.; public class Bai1 { public static void main(String args[]) { Scanner sc= new Scanner(System.in); int n = sc.nextInt(); int[] M = new int[n]; for (int i=0;i<n;i++) { M[i]=sc.nextInt(); }; Arrays.sort(M); int a = M[0]; int b=M[n-1]; int len = 0; if (a<0 && b<0) { len=Math.abs(a)2; } else if ((a<=0 && b>0)||(a<0 && >! b>=0)) { len = Math.abs(b-a)2; } else if (a>0 && b>0) { len = b2; }; System.out.print(len); } }