C8-03 · Số giá trị khác nhau
Xem dạng PDF
Gửi bài giải
Điểm:
1,00
Giới hạn thời gian:
4.0s
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
Đề
Cho dãy n số nguyên. Hãy cho biết dãy có bao nhiêu giá trị khác nhau, rồi liệt kê các giá trị đó theo thứ tự tăng dần.
Dữ liệu vào
- Dòng đầu chứa số nguyên n.
- Dòng thứ hai chứa n số nguyên, cách nhau một dấu cách.
Kết quả
- Dòng 1: số giá trị khác nhau.
- Dòng 2: các giá trị khác nhau theo thứ tự tăng dần (so như số, không phải như chuỗi), cách nhau một dấu cách.
Ràng buộc
- ~1 \le n \le 2 \cdot 10^5~.
- Mỗi số nằm trong đoạn ~[-10^9;\ 10^9]~.
Ví dụ
Dữ liệu vào:
5
3 1 3 2 1
Kết quả:
3
1 2 3
Giải thích ví dụ
Dãy 3 1 3 2 1 có ba giá trị khác nhau là 1, 2, 3 (số 3 và số 1 mỗi số xuất hiện hai lần nhưng chỉ tính một lần). Dòng hai in chúng tăng dần.
Lưu ý
- Thứ tự phần tử trong một
setkhông phải thứ tự tăng dần; luôn in bằngsorted(...)(mục 8.5). - Phải đổi sang số trước khi sắp: theo thứ tự chuỗi thì
"10"đứng trước"9". - n tới ~2 \cdot 10^5~: loại trùng bằng list (
if x not in ds) phải so lần lượt nên quá chậm;setkiểm tra "đã có chưa" rất nhanh.
Nguồn: Bài C8-03, 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-03 (mục 8.9) · Mức: (*)
Đang tải...