Trang chủ Tin Học Lớp 8 Vân đang đi bộ về nhà sau buổi học thêm...

Vân đang đi bộ về nhà sau buổi học thêm tối dọc theo một con đường thẳng có độ dài l, được chiếu sáng bởi n chiếc đèn đường. Xét con đường ứng với trục Ox với

Câu hỏi :

Vân đang đi bộ về nhà sau buổi học thêm tối dọc theo một con đường thẳng có độ dài l, được chiếu sáng bởi n chiếc đèn đường. Xét con đường ứng với trục Ox với đầu đường tương ứng với điểm 0, cuối đường tương ứng với điểm l. Khi đó, chiếc đèn thứ i nằm ở điểm ai. Đèn chiếu sáng tất cả các điểm trên đường mà cách nó không quá d, trong đó d là một số dương, giống nhau cho tất cả các đèn.

Vân tự hỏi: đèn đường cần có bán kính chiếu sáng tối thiểu là bao nhiêu d để chiếu sáng cả con đường?

Input

Dòng đầu tiên chứa hai số nguyên n, l (1 ≤ n ≤ 1000, 1 ≤ l ≤ 109) — số lượng đèn đường và độ dài của con đường tương ứng.

Dòng tiếp theo chứa n số nguyên ai (0 ≤ ai ≤ l). Có thể có nhiều đèn được đặt tại cùng một điểm. Các đèn có thể được đặt ở hai đầu của con đường.

Output

In ra bán kính chiếu sáng tối thiểu d để chiếu sáng cả con đường. Kết quả sẽ được coi là đúng nếu chênh lệch với đáp án của giám khảo không vượt quá 10 - 9.

 Input                                                                   Output

7 15                                                                     2.5000000000

15 5 3 7 9 14 0

ngôn ngữ c++

Lời giải 1 :

#include <bits/stdc++.h>
using namespace std;

int main() {
    int n;
    long long l;
    cin >> n >> l;
    vector<long long> a(n);
    for (int i = 0; i < n; ++i) {
        cin >> a[i];
    }
    sort(a.begin(), a.end());
    double d = 0;
    d = max(d, (double)a[0]);
    d = max(d, (double)(l - a[n - 1]));
    for (int i = 1; i < n; ++i) {
        d = max(d, (double)(a[i] - a[i - 1]) / 2);
    }
    cout << setprecision(10) << fixed << d;
    return 0;
}

Lời giải 2 :

#include <bits/stdc++.h>
using namespace std;
int main() {
    int n;
    long long l;
    cin>>n>>l;
    vector<long long>a(n);
    for (auto &x:a) cin>>x;
    sort(a.begin(),a.end()); 
    double d=max({(double)a[0],(double)(l-a.back())});
    for (int i=1;i<n;++i) 
    d=max(d,(double)(a[i]-a[i-1])/2);
    cout<<fixed<<setprecision(10)<<d;
}

 

Bạn có biết?

Tin học là một ngành khoa học chuyên nghiên cứu quá trình tự động hóa việc tổ chức, lưu trữ, xử lý và truyền dẫn thông tin của một hệ thống máy tính cụ thể hoặc trừu tượng. Tin học bao hàm tất cả các nghiên cứu và kỹ thuật có liên quan đến việc mô phỏng, biến đổi và tái tạo thông tin. Hãy tận dụng sức mạnh của tin học để giải quyết các vấn đề và sáng tạo ra những giải pháp mới!

Nguồn :

Wikipedia - Bách khoa toàn thư

Tâm sự lớp 8

Lớp 8 - Năm thứ ba ở cấp trung học cơ sở, học tập bắt đầu nặng dần và sang năm lại là năm cuối cấp, áp lực lớn dần. Hãy chú ý đến sức khỏe, cân bằng giữa học và nghỉ ngơi để đạt hiệu quả tốt nhất!

Nguồn :

sưu tập

Liên hệ hợp tác hoặc quảng cáo: gmail

Điều khoản dịch vụ

Copyright © 2021 HOCTAPSGK