C8-05 · Sĩ số theo lớp
Xem dạng PDF
Gửi bài giải
Điểm:
1,00
Giới hạn thời gian:
3.5s
Giới hạn bộ nhớ:
256M
Input:
stdin
Output:
stdout
Tác giả:
Nguồn bài:
Dạng bài
Ngôn ngữ cho phép
Python
Đề
Phòng đào tạo có danh sách n sinh viên, mỗi sinh viên ghi mã lớp của mình. Hãy in sĩ số (số sinh viên) của từng lớp, theo mã lớp tăng dần.
Dữ liệu vào
- Dòng đầu chứa số nguyên n.
- n dòng tiếp theo, mỗi dòng là mã lớp của một sinh viên.
Kết quả
Mỗi lớp một dòng: mã lớp và sĩ số, cách nhau một dấu cách. Các dòng theo mã lớp tăng dần, so như chuỗi (thứ tự của sorted() trên chuỗi): ví dụ IT1 < IT10 < IT2.
Ràng buộc
- ~1 \le n \le 10^5~.
- Mã lớp gồm 1 đến 10 ký tự, mỗi ký tự là chữ cái in hoa
A–Zhoặc chữ số.
Ví dụ
Dữ liệu vào:
3
IT2
IT1
IT2
Kết quả:
IT1 1
IT2 2
Giải thích ví dụ
Lớp IT2 có hai sinh viên (dòng 1 và dòng 3), lớp IT1 có một. Lớp IT2 gặp trước nhưng kết quả theo mã lớp tăng dần nên IT1 in trước.
Lưu ý
- Dict duyệt theo thứ tự chèn; muốn theo mã tăng dần thì duyệt
sorted(si_so)(mục 8.3). - Có thể có tới ~10^5~ lớp khác nhau: đếm bằng dict; gọi
list.count()cho từng lớp sẽ quá chậm.
Nguồn: Bài C8-05, mục 8.9, giáo trình Lập trình cơ sở với Python — TS. Nguyễn Quốc Long.
Nguồn trong sách: bài tập C8-05 (mục 8.9) · Mức: (**)
Đang tải...