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.
Đăng nhận xét