MAXFREQ - Phần tử xuất hiện nhiều nhất

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

Cho một dãy gồm ~n~ số nguyên ~a_1, a_2, …, a_n~, tìm phần tử xuất hiện nhiều nhất trong dãy.

Input

  • Dòng đầu tiên chứa duy nhất một số nguyên dương ~n~ (số phần tử trong dãy).
  • Dòng thứ hai chứa ~n~ số nguyên là các phần tử ~a_1, a_2, …, a_n~

Giới hạn:

  • ~1≤n≤10^5,0≤a_i≤10^5~

Output

  • In ra trên một dòng hai số nguyên là phần tử xuất hiện nhiều nhất và số lần xuất hiện của phần tử đó (nếu có nhiều phần tử khác nhau với số lần xuất hiện là như nhau và lớn nhất thì in ra phần tử đầu tiên xuất hiện trong dãy).

Sample

Input #1
5
2 1 1 2 3
Output #1
22
Input #2
5
3 1 3 1 2
Output #2
3 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.



  • -3
    tri_88  đã bình luận lúc 29, Tháng 11, 2023, 10:40

    include <bits/stdc++.h>

    using namespace std;

    long long i,n,d,j,k,res,ma,a[1000001];

    map<int,int> dem;

    int main() {

    cin>>n;

    d=0;

    ma=-1;

    for(i=1;i<=n;i++){

    cin>>a[i];
    
    dem[a[i]]++;
    

    }

    for(i=1;i<=n;i++)

    if(ma&lt;dem[a[i]])
    

    ma=dem[a[i]];

    for(i=1;i<=n;i++)

    if(dem[a[i]]==ma){

    cout<&lt;a[i]<<" "<&lt;dem[a[i]];
    
    break;
    

    }

    return 0;

    }


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

    sao test 2 khi xuất thì có dấu cách còn test 1 thì k z a