TNV - Đội tình nguyện viên

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, PyPy, Python, Ruby, Rust, Scratch, Swift

Tháng ~7~ năm nay trường ta (THPT Chuyên Sơn La) đăng cai tổ chức THHV lần thứ XV. Để chuẩn bị cho sự kiện trọng đại này, nhà trường cần sự tham gia tích cực của các bạn học sinh vào công tác tình nguyện (tiếp đón đại biểu các trường, chỉ dẫn đường đi, …).

Để chọn đội tình nguyện viên, BTC THHV muốn chọn những em học sinh có chiều cao bằng nhau (để được đội hình đồng đều, đẹp). Biết rằng nhà trường có ~n~ em học sinh có chiều cao lần lượt là ~h_1, h_2, …, h_n~.

Yêu cầu:Hãy giúp BTC THHV chọn ra một nhóm học sinh có chiều cao bằng nhau với số lượng nhiều nhất, nếu có nhiều nhóm có số lượng bằng nhau thì chọn nhóm có chiều cao lớn nhất.

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 ra một dòng duy nhất chứa hai số nguyên dương là chiều cao và số lượng các em học sinh chọn được.

Sample

Input #1
5
155 156 156 157 156
Output #1
156 3

Hint

Xét #1, có ~1~ em cao ~155~, ~3~ em cao ~156~ và ~1~ em cao ~157~. Do đó chọn được ~3~ em học sinh có chiều cao bằng nhau là ~156~

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


Bình luận

Please read the guidelines before commenting.



  • 0
    kietjumper  đã bình luận lúc 27, Tháng 12, 2025, 3:23
    #include <bits/stdc++.h>
    #define ll long long
    #define io cin.tie(0)->ios_base::sync_with_stdio(0)
    #define endl '\n'
    #define pb push_back
    #define fin for (int i = 1; i <= n; i++)
    #define fjm for (int j = 1; j <= m; j++)
    #define fis for (int i = 1; i <= (int)s.size(); i++)
    #define yes cout << "YES"
    #define no cout << "NO"
    #define fi first
    #define se second
    #define NAME ""
    using namespace std;
    
    const int N=1e5+2;
    ll a[N],n,maxx,idx,cnt;
    void solve()
    {
        cin>>n;
        fin cin>>a[i];
        sort(a+1, a+n+1);
        maxx=-1;
        idx=-1;
        fin
        {
            cnt=1;
            while(a[i]==a[i+1])
            {
                cnt++;
                i++;
            }
            if(cnt>=maxx)
            {
                maxx=cnt;
                idx=max(idx, a[i]);
            }
        }
        cout << idx << " " << maxx;
    }
    int main()
    {
        io;
        if(fopen(NAME".inp","r"))
        {
            freopen(NAME".inp","r",stdin);
            freopen(NAME".out","w",stdout);
        }
        solve();
    }
    
    

  • -1
    blabla250312  đã bình luận lúc 9, Tháng 12, 2025, 7:51

    sibidibidi dom dom ye ye


  • 0
    congtyluuthaibao1978  đã bình luận lúc 25, Tháng 11, 2025, 10:20

    include <bits/stdc++.h>

    using namespace std;

    int main() { ios::syncwithstdio(false); cin.tie(nullptr);

    int n;
    cin >> n;
    unordered_map&lt;long long, int> freq;
    freq.reserve(n);
    
    for (int i = 0; i < n; i++) {
        long long h;
        cin >> h;
        freq[h]++;
    }
    
    long long bestHeight = 0;
    int bestCount = 0;
    
    for (auto &p : freq) {
        long long height = p.first;
        int count = p.second;
    
        if (count > bestCount) {
            bestCount = count;
            bestHeight = height;
        } else if (count == bestCount && height > bestHeight) {
            bestHeight = height;
        }
    }
    
    cout << bestHeight << " " << bestCount << "\n";
    return 0;
    

    }


  • 0
    tmqdelta  đã bình luận lúc 22, Tháng 11, 2025, 10:30

    include <bits/stdc++.h>

    using namespace std; struct Group { int name; int tan_suat = 0; }; int main () { int n; while (true) { cin >> n; if (n >= 1 && n <= 100000) break; }

    vector <int> arr(n);
    
    for (int i = 0; i < n; i++)
    {
        cin >> arr[i];
    }
    
    sort(arr.begin(), arr.end());
    
    vector <int> temp(n);
    
    for (int i = 0; i < n; i++)
    {
        temp[i] = arr[i];
    }
    
    for (int i = 0; i < n - 1; i++)
    {
        if (temp[i] == temp[i + 1]) temp[i] = 0;
    }
    
    vector <int> res;
    
    for (int i = 0; i < n; i++)
    {
        if (temp[i] != 0) res.push_back(temp[i]);
    }
    
    int num = res.size();
    vector <Group> tmq(num);
    
    for (int i = 0; i < num; i++)
    {
        tmq[i].name = res[i];
    }
    
    for (int i = 0; i < num; i++)
    {
        for (int j = 0; j < n; j++)
        {
            if (tmq[i].name == arr[j]) tmq[i].tan_suat++;
        }
    }
    
    for (int i = num - 1; i >= 0; i--)
    {
        for (int j = 0; j < i; j++)
        {
            if ((tmq[j].tan_suat <= tmq[j + 1].tan_suat) && (tmq[j].name <= tmq[j + 1].name)) swap(tmq[j], tmq[j + 1]);
        }
    }
    
    cout << tmq[0].name << " " << tmq[0].tan_suat;
    return 0;
    

    }


  • 0
    vn_sharks  đã bình luận lúc 4, Tháng 8, 2025, 13:20

    daj ac cho e xin code bài này với ạ e k biết làm ạ