TRAOGIAI - Trao giải

View as PDF

Submit solution

Points: 1.00 (partial)
Time limit: 1.0s
Memory limit: 256M

Author:
Problem type
Allowed languages
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift

Kỳ thi học sinh giỏi khối ~10~ môn Tin học năm nay có ~n~ học sinh tham gia với tổng điểm của các học sinh lần lượt là các số tự nhiên ~d_1, d_2, …, d_n~. BTC quyết định chọn các học sinh để trao giải theo nguyên tắc sau: Đầu tiên chọn ~[\frac{n}{2}]~ (phần nguyên của ~\frac{n}{2}~) số học sinh có điểm từ cao xuống thấp, sau đó chọn thêm những học sinh bằng điểm với học sinh có điểm thấp nhất trong số này. Em hãy giúp BTC tính số lượng học sinh có giải.

Input

  • Dòng đầu chứa số nguyên dương ~n~;
  • Dòng thứ hai chứa ~n~ số tự nhiên ~d_1, d_2, …, d_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:

  • ~2 ≤ n ≤ 10^5; 0 ≤ d_i ≤ 10^6~.

Output

  • Một số nguyên duy nhất là số học sinh có giải.

Sample

Input #1
5
98 97 100 98 98
Output #1
4

Hint

Xem xét #1:

  • ~[\frac{n}{2}] = [\frac{5}{2}] = 2~. Hai học sinh được chọn có điểm từ cao xuống thấp là ~100~ và ~98~, tiếp theo, còn ~2~ học sinh cùng đạt ~98~ điểm nữa cũng được chọn. Vậy có ~4~ học sinh có giải.

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


Comments

Please read the guidelines before commenting.



  • 0
    codec  commented on March 11, 2025, 3:06 p.m.

    include <bits/stdc++.h>

    define el "\n"

    using namespace std; using ll = long long;

    void TienDat(){ int k; cin >> k; map<int , int , greater<int>> freq; for (int i = 0; i < k ; ++i){ int x; cin >> x; freq[x]++; } int g = k / 2; int dem = 0; for (auto &[key , value] : freq){ if (dem <= g) dem += value; } cout << dem << el; }

    int main(){ iosbase::syncwith_stdio(0); cin.tie(0);

    TienDat();
    return 0;
    

    } sai đâu ạ


  • 0
    Minh_Khoa  commented on Oct. 17, 2024, 7:25 a.m.

    đr test 2 là gì vậy