Bài 1. Trò chơi con số may mắn.
Nhân dịp lễ giáng sinh, công viên trung tâm tổ chức trò chơi "Con số may mắn". Mỗi em nhỏ đến tham dự sẽ được phát một số nguyên dương. Công viên có một thiết bị quay số, mỗi lần quay sẽ tạo ngẫu nhiên một số nguyên dương không vượt quá 104. Người dẫn chương trình sẽ thực hiện N lần quay số. Số nào xuất hiện nhiều nhất trong N lần quay được gọi là con số may mắn và em nhỏ nào có con số may mắn thì sẽ được phần thưởng (có thể có nhiều con số may mắn).
Yêu cầu: Cho N con số xuất hiện trong N lần quay. Bạn hãy giúp người dẫn chương trình xác định số lần xuất hiện của con số may mắn.
Dữ liệu: Vào từ file văn bản Bai1.inp:
- Dòng đầu là số N (1 £ N £ 104);
- Dòng tiếp theo có N số là các số xuất hiện trong N lần quay (các số trên cùng một dòng ghi cách nhau một dấu cách).
Kết quả: Ghi ra file văn bản Bai1.out: Chỉ một số duy nhất là số lần xuất hiện của con số may mắn.
Ví dụ:
Bai1.inp |
Bai1.out |
Bai1.inp |
Bai1.out |
5
4 3 4 4 15 |
3 |
7
12 5 10 5 8 10 9 |
2 |
CODE MẪU THAM KHẢO (PASCAL).
const fi='Bai1.inp';
fo='Bai1.out';
var a:array[1..10000] of integer;
n,m,i,d:integer;
f:text;
begin
assign(f,fi);
reset(f);
readln(f,n);
d:=0;
for i:=1 to n do
begin
read(f,m);
inc(a[m]);
if a[m]>d then d:=a[m];
end;
close(f);
assign(f,fo);
rewrite(f);
writeln(f,d);
close(f);
end.
SOLUTION:
Bài này thì đơn giải chỉ dùng mảng đánh dấu là mảng a (Có chỉ số index là các số xuất hiện trong các lần quay). Mỗi lần đọc đến số m nào thì tăng giá trị
a[m] lên 1 đơn vị, đồng thời nếu
a[m] > d thì gán
d:= a[m]. Khi duyệt hết mảng thì
d là số lần xuất hiện nhiều nhất của số may mắn m.
CÁC TEST:
Các test được đính kèm cuối bài.
Nếu thấy hữu ích, xin đừng tiếc cho tôi xin một ĐĂNG KÝ KÊNH và một LIKE. Xin cảm ơn!