PERFECT - Cặp đôi hoàn hảo

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

Để tăng cường môi trường "Trường học thân thiện, Học sinh tích cực", ngày ~26/3~ năm nay Sở Giáo dục và Đào tạo tổ chức cuộc thi "Cặp đôi hoàn hảo" với sự tham gia là các trường THPT trong Tỉnh. Để tham gia, mỗi trường cử hai em học sinh của trường mình đi thi. Luật thi rất đơn giản: Cặp đôi nào có chênh lệch chiều cao giữa hai học sinh nhỏ nhất sẽ chiến thắng.

Trường của bạn có ~n~ học sinh đánh số từ ~1~ đến ~n~, học sinh thứ ~i~ có chiều cao là một số nguyên dương ~h_i~. Bạn hãy giúp trường bạn chọn cặp đôi "hoàn hảo" để đi thi nhé.

Input

  • Dòng đầu chứa số nguyên dương ~n~;
  • Dòng thứ hai chứa ~n~ số nguyên dương ~h_1, h_2, …, h_n~.

Hai số liên tiếp trên một dòng được ghi cách nhau một dấu cách.

Giới hạn:

  • ~1 ≤ n ≤ 10^5; 1 ≤ h_i ≤ 10^9~.

Output

  • Ghi trên một dòng số nguyên là chênh lệch chiều cao nhỏ nhất của hai bạn học sinh được chọn.

Sample

Input #1
5
150 155 161 172 170
Output #1
2

Hint

Xét #1, ta chọn hai học sinh số ~4~ và số ~5~ đi thi sẽ có chênh lệch chiều cao nhỏ nhất bằng ~2~.

Problem source: Chuyên Sơn La Online Judge


Bình luận

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



  • 0
    thienhoclaptrinh2k11  đã bình luận lúc 25, Tháng 4, 2024, 7:22

    include <bits/stdc++.h>

    using namespace std;

    int main(){ int n; cin >> n; vector<int> a(n); for(int i = 0; i < n; i++){ cin >> a[i]; } sort(a.begin(), a.end()); int minval = INTMAX; for(int i = 0; i < n - 1; i++){ int mindiff = a[i + 1] - a[i]; if(minval > mindiff){ minval = mindiff; } } cout << minval <<endl; }


  • 0
    kietdang  đã bình luận lúc 23, Tháng 3, 2024, 13:15

    n=int(input('')) mang=[int(i) for i in input().split()] minn=float('inf') for i in range(len(mang)): for j in range(i+1,len(mang)): hieu=abs(mang[i]-mang[j]) if hieu<minn:minn=hieu print(minn) mình làm vầy mấy case cuối nó lỗi thì sửa sao mọi người


  • 0
    thangok  đã bình luận lúc 4, Tháng 3, 2024, 12:45

    Mấy chú tham khảo nhé

    include<bits/stdc++.h>

    using namespace std; int main() { int n; cin>>n; int a[n]; for(int i=0;i<n;i++){ cin>>a[i]; } int minn=1e9; sort(a,a+n); for(int i=0;i<n;i++) { if(i+1==n) break; if(minn>(a[i+1]-a[i])) minn=a[i+1]-a[i]; } cout<<minn; return 0; }


  • 0
    lunalight12345  đã bình luận lúc 15, Tháng 2, 2024, 11:20

    Mấy bác giúp e bị tle case cuối mặc dù e đã sort+duyệt tìm min tới n ạ


  • 0
    quocanh  đã bình luận lúc 10, Tháng 2, 2024, 18:04

    mọi người cho mình xin test case 2 với ạ


  • 1
    Hula25  đã bình luận lúc 8, Tháng 2, 2024, 17:20

    Bài này em dùng hàm for để tìm min từ đặt min ở vị trí 0 và 1 trừ nhau rồi chạy vòng lặp thì lại bị lỗi test case 5 mà khi dùng hàm min trong thư viện algorithm thì lại được , Có thể giải thích cho em hiểu với được ko ạ ?


  • 0
    Aothatday  đã bình luận lúc 17, Tháng 1, 2024, 14:57

    https://ideone.com/AA3Ymq


  • 0
    KhoiMinh  đã bình luận lúc 18, Tháng 12, 2023, 8:58

    include <iostream>

    include <algorithm>

    include <cmath>

    using namespace std; int main() { iosbase::syncwith_stdio(0); cin.tie(0); cout.tie(0);

        int n; cin>>n; int a[n];
        for (auto &i:a) cin>>i;
        int min=1e9;
        sort(a,a+n);
        for (int i=0; i&lt;n; ++i)
            min=fmin(min,abs(a[i]-a[i+1]));
        cout<&lt;min;
    

    }


  • 0
    vdtue  đã bình luận lúc 14, Tháng 9, 2023, 12:57

    test 4 là gì v


    • -2
      thh  đã bình luận lúc 30, Tháng 1, 2024, 9:57

      Bài cụ thể là ae nhập vô xong sort lấy 2 phần tử liên tiếp trừ cho nhau rồi lấy min trong vong for nha

      CODE C++ CHO AE NÀO CẦN, NẾU THẤY HAY CHO TUI XIN UPVOTE NHA

      include<bits/stdc++.h>

      using namespace std;

      define int long long

      int n, h[100001], minn = INT_MAX; void solve() {

      cin >> n;
      for(int i = 1;i <= n; ++i)
          cin >> h[i];
      sort(h + 1,h + n + 1);
      for(int i = 1;i < n; ++i)
          minn = min(minn, abs(h[i] - h[i + 1]));
      
      cout << minn;
      

      } main() {

      ios::sync_with_stdio(false);
      cin.tie(nullptr);cout.tie(nullptr);
      
      solve();
      return 0;
      

      }


    • 0
      nagihus  đã bình luận lúc 8, Tháng 11, 2023, 11:21

      bác làm được test 4 chưa bác


      • 0
        tuanori  đã bình luận lúc 13, Tháng 11, 2023, 12:35

        Đừng có nói với tôi là bạn sort xong rồi, lấy 2 số lớn nhất và lớn nhì trừ cho nhau nhé. Vậy là sai rồi đấy