Chọn HSG
Điểm: 2
Find the first non-repeating character. (Ký tự không lặp lại đầu tiên)
Dữ Liệu Đầu Vào: swiss
Kết Quả Dự Kiến: w Nếu tồn tại ký tự không lặp lại, in ra ký tự đó. Nếu không có ký tự nào không lặp lại, in ra -1.
Điểm: 2
Cho dãy số nguyên dương gồm ~n~ chữ số, yêu cầu xóa đi ~k~ chữ số sao cho dãy số còn lại có giá trị lớn nhất.
Yêu cầu:
- Dãy số ban đầu được nhập vào dưới dạng chuỗi số để giữ nguyên thứ tự các chữ số.
- Kết quả phải là dãy số lớn nhất có độ dài ~n - k~.
- Không được thay đổi thứ tự tương đối của các chữ số còn lại.
- Nếu ~k = n~, kết quả sẽ là chuỗi rỗng.
Đầu vào:
- Dòng thứ nhất chứa hai số nguyên ~n~ và ~k~ ~(1 ≤ k < n ≤ 10^6)~.
- Dòng thứ hai chứa một chuỗi gồm ~n~ chữ số ~(0 ≤ a[i] ≤ 9)~.
Đầu ra:
- Một chuỗi số là dãy số lớn nhất có thể sau khi xóa ~k~ chữ số.
Ví dụ:
Ví dụ 1:
Đầu vào:
6 2
143221
Đầu ra:
4322
Điểm: 2
Có ~n~ người muốn thuê một phòng trong một khách sạn. Mỗi người ~i~ có một khoảng thời gian thuê ~[d_i, c_i]~ (~d_i~ là thời điểm đến, ~c_i~ là thời điểm rời đi). Ngoài ra, mỗi người còn có ~p_i~ - số tiền mà họ sẵn sàng trả để thuê phòng trong khoảng thời gian này.
Một người chỉ có thể ở trong phòng trong khoảng thời gian đã đăng ký, và khi một người rời đi, phòng sẽ được trả lại ngay lập tức.
Bạn cần tìm tập hợp nhiều nhất số lượng người thuê phòng mà không có hai người nào trùng khoảng thời gian sử dụng phòng và tổng số tiền thuê phòng là lớn nhất có thể.
Yêu cầu:
Tìm tổng số tiền thuê phòng lớn nhất có thể thu được.
Dữ liệu vào (Input):
- Dòng đầu tiên chứa số nguyên ~n~ ~(1 ≤ n ≤ 100000)~ - số người muốn thuê phòng.
- ~n~ dòng tiếp theo, mỗi dòng chứa ba số nguyên ~d_i, c_i, p_i~ ~(1 ≤ d_i < c_i ≤ 10^9, 1 ≤ p_i ≤ 10^6)~ - thời điểm đến, thời điểm rời đi và số tiền thuê phòng của người thứ ~i~.
Dữ liệu ra (Output):
- Dòng đầu tiên in ra tổng số tiền thuê phòng lớn nhất có thể.
Ví dụ 1
Input:
5
1 4 50
3 5 20
0 6 30
5 7 40
8 9 60
Output:
150
Giải thích:
- Nhóm thuê phòng tối ưu: (1,4,50), (5,7,40), (8,9,60).
- Tổng tiền thuê phòng: 50 + 40 + 60 = 150.
Điểm: 2
Cho hai xâu ký tự ~X~ và ~Y~ chỉ bao gồm các chữ cái từ 'A' đến 'Z'. Hãy tìm độ dài xâu con chung dài nhất của hai xâu này.
Yêu cầu:
- Xâu con không nhất thiết phải liên tiếp trong chuỗi gốc nhưng phải giữ nguyên thứ tự xuất hiện.
- Chỉ cần tìm độ dài của xâu con chung dài nhất, không cần xuất ra xâu đó.
Dữ liệu vào:
- Dòng 1: Một xâu ~X~ có độ dài từ 1 đến 1000.
- Dòng 2: Một xâu ~Y~ có độ dài từ 1 đến 1000.
Dữ liệu ra:
- In ra một số nguyên là độ dài của xâu con chung dài nhất.
Ví dụ:
Input
ACDBE
ABCDE
Output
4
Giải thích:
- "ACDE" là xâu con chung dài nhất của "ACDBE" và "ABCDE", độ dài là 4. Điểm số:
- 100% số điểm nếu tìm đúng độ dài xâu con chung dài nhất trong thời gian tối ưu.
Điểm: 2
Cho một dãy số nguyên dương gồm ~n~ phần tử: ~A~ ~=~ ~{a_1, a_2, ..., a_n}~ và một số nguyên dương ~M~. Nhiệm vụ của bạn là đếm số dãy con (subset) có tổng bằng ~M~.
Dữ liệu vào
- Dòng đầu tiên chứa hai số nguyên ~n~ và ~M~ ~(1 ≤ n ≤ 100, 1 ≤ M ≤ 10^5)~.
- Dòng thứ hai chứa ~n~ số nguyên ~a_1, a_2, ..., a_n~ ~(1 ≤ a_i ≤ 10^4)~.
Dữ liệu ra
- In ra một số nguyên duy nhất: số dãy con có tổng bằng ~M~.
Ví dụ
Ví dụ 1
Dữ liệu vào
5 9
3 34 4 12 5
Dữ liệu ra
1