[Buổi 2][Chọn STL theo bài toán][HW] Bài 3: Hệ thống đăng ký tên
Hệ thống đăng ký tên
Bối cảnh và bài toán
Một nền tảng học trực tuyến cho phép người dùng chọn tên tài khoản. Máy chủ xử lý yêu cầu theo đúng thứ tự nhận được và phải phản hồi ngay, vì vậy mỗi lần tra cứu hay cập nhật đều cần đủ nhanh khi số người đăng ký lớn.
Với mỗi yêu cầu name:
- nếu
namechưa từng được đăng ký, hệ thống đăng ký tên đó và inOK; - nếu
nameđã tồn tại, hệ thống nối số dương nhỏ nhấtkvào saunameđể tạo tên mới chưa dùng, đăng ký tên mới và in tên mới.
Tên trong yêu cầu đầu vào chỉ gồm chữ thường a..z, vì vậy không chứa chữ số. Điều này bảo đảm một tên do hệ thống sinh ra như anna1 sẽ không xuất hiện về sau dưới dạng tên gốc trong đầu vào.
Yêu cầu
Mô phỏng hệ thống và in phản hồi cho từng yêu cầu đăng ký.
Input
- Dòng 1:
n. ndòng tiếp theo: một tên yêu cầu, độ dài từ1đến32.
Output
Một dòng phản hồi cho mỗi yêu cầu.
Ràng buộc
1 <= n <= 10^5
Chấm điểm
| Subtask | Điểm | Điều kiện | Official tests |
|---|---|---|---|
| S1 | 20% | n ≤ 20 | 01–04 |
| S2 | 30% | n ≤ 2 000 | 05–10 |
| S3 | 50% | Không có ràng buộc bổ sung | 11–20 |
Ví dụ 1
Input
4
abacaba
acaba
abacaba
acab
Output
OK
OK
abacaba1
OK
Giải thích. Hai tên đầu chưa tồn tại nên được chấp nhận. Yêu cầu abacaba lần hai bị trùng, vì vậy hệ thống tạo abacaba1. Tên acab vẫn chưa được dùng nên nhận OK.
Ví dụ 2
Input
5
a
a
a
b
a
Output
OK
a1
a2
OK
a3
Giải thích. Sau lần đầu, a đã tồn tại. Ba lần đăng ký trùng tiếp theo nhận lần lượt các hậu tố nhỏ nhất còn trống: a1, a2, a3.
Thông tin bài tập
| Thuộc tính | Giá trị |
|---|---|
| Mã bài | DSA-M01-B02-HW03 |
| Buổi | B02 |
| Loại bài | HOMEWORK |
| Mức độ khó | Trung bình (Medium) |
| Thời gian làm bài khuyến nghị | 30 phút |
| Time limit | 2 giây |
| Memory limit | 256 MB |
| Tổng điểm | 100 |
| Chuẩn ngôn ngữ tham chiếu | C++17 |
Nguồn: Phỏng theo Codeforces Beta Round 4 — 4C Registration System.
Tham khảo: https://codeforces.com/problemset/problem/4/C
Ghi chú biên tập: Biên tập lại ngữ cảnh/constraints và chuẩn hóa theo lộ trình FULLHOUSE DEV; giữ bản chất yêu cầu của bài nguồn.
Comments