Thống kê tần suất xuất hiện


Submit solution

Points: 2
Time limit: 1.0s
Memory limit: 98M

Author:
Problem type
Allowed languages
Ada, Assembly, Awk, C, C++, C11, CLANG, CLANGX, Classical, COBOL, Coffee, CSC, D lang, DART, F95, FORTH, Fortrn, GAS32, GO, Haskell, Itercal, Java, kotlin, LEAN, LISP, LUA, MONOVB, Nasm, OCAML, Pascal, Perl, php, PIKE, prolog, Pypy, Python, Ruby 2, RUST, Scala, SCM, SED, SWIFT, TCL, TUR, V8JS, VB, ZIG

Bài toán: cho dãy số nguyên n phần tử \(a_1,a_2,...,a_n\) hãy thống kê tần suất xuất hiện của từng phần tử có trong dãy theo thứ tự từ bé đến lớn

Input

Dòng đầu chứa số phần tử n \((1<=n<=1000)\)

Dòng tiếp theo chứa n số nguyên có giá trị tuyệt đối không vượt quá \(10^4\)

Output

Từng dòng là phần tử và tần suất xuất hiện theo thứ tự từ bé đến lớn

Ví dụ

Input

12
4 7 -2 8 4 8 3 -2 4 6 -2 4

Output

-2 3
3 1
4 4
6 1
7 1
8 2
tichpx

Comments


  • 1
    Ngoxuanphuong  commented on July 8, 2020, 5:24 a.m.

    ai làm được bài này cho em xin giải với em làm 2 cách mà mỗi cách lỗi một cái test


    • 1
      TICHPX  commented on July 8, 2020, 6:43 a.m.

      My code

      #include<bits/stdc++.h>
      using namespace std;
      int main()
      {
          int n,x;
          int a[20009],*p=a+10000;
          fill(a,a+20006,0);
          cin>>n;
          for(int i=1;i<=n;i++) {cin>>x;p[x]++;}
          for(int i=-1e4;i<=1e4;i++)
          if(p[i])cout<<i<<" "<<p[i]<<endl;
      }

      • 1
        Ngoxuanphuong  commented on July 8, 2020, 3:14 p.m.

        em cảm ơn thầy ạ , thầy giúp em giải thích thêm 2 dòng lệnh *p=a+10000; fill(a,a+20006,0); để làm gì ko ạ


        • 2
          TICHPX  commented on July 8, 2020, 3:22 p.m.

          Khi khai báo

          int a[20],*p=a+10;

          Thì dưới con mắt của mảng a sẽ đánh chỉ số từ 0 đến 19, ta cho con trỏ p trỏ vào giữa mảng a bằng cách viết p=&a[10] hoặc p=a+10 thì dưới con mắt của p sẽ là một mảng có chỉ số từ p[-10] đến p[9] cái này vì dữ liệu nó âm nên phải làm một mảng có chỉ số cả âm lẫn dương như vậy.

          Còn hàm fill là ta gán cho mảng toàn số 0, nếu em khai báo int a[20009]={}; thì có thể bỏ qua hàm fill vì như vậy mặc định mảng toàn 0


          • 1
            Ngoxuanphuong  commented on July 10, 2020, 3:26 a.m.

            vâng em cảm ơn thầy ạ