BÀI TẬP 28: TẦN SUẤT

Cho tập hợp S có N phần tử nguyên dương {s1, s2,…, sN}.

(1 ≤ N ≤ 32000; 0 < si ≤ 32000; 1 ≤ i ≤ N)
Yêu cầu: Hãy liệt kê các phần tử trong S có số lần xuất hiện lớn hơn một lần.
Dữ liệu vào: Cho trong file văn bản TANSUAT.INP có cấu trúc như sau:
    - Dòng 1: Ghi số nguyên dương N.
    - Dòng 2: Ghi N số nguyên dương là giá trị các phần tử của tập hợp S, các số được ghi cách nhau ít nhất một dấu cách.
Dữ liệu ra: Ghi ra file văn bản TANSUAT.OUT trên nhiều dòng, dòng thứ i ghi 2 số si di, hai số cách nhau một dấu cách. Trong đó si là phần tử xuất hiện trong S lớn hơn một lần và di tương ứng là số lần si xuất hiện.
Ví dụ:
TANSUAT.INP
7
2 5 5 3 5 3 9
TANSUAT.OUT
3 2
5 3

CODE THAM KHẢO:
const fi='tansuat.inp'; fo='tansuat.out'; var f1,f2:text; a:array[1..16000] of word; d:array[1..32000] of word; n,i,j,k:word; begin assign(f1,fi); reset(f1); readln(f1,n); assign(f2,fo); rewrite(f2); for i:=1 to n do begin read(f1,k); inc(d[k]); if d[k]=2 then begin inc(j); a[j]:=k; end; end; for i:=1 to j do writeln(f2,a[i],' ',d[a[i]]); close(f1); close(f2); end.


Nhãn:

Đăng nhận xét

[blogger]

Biểu mẫu liên hệ

Tên

Email *

Thông báo *

Được tạo bởi Blogger.
Javascript DisablePlease Enable Javascript To See All Widget