SQRTOJ Educational Contest #01: Kỳ thi Học sinh giỏi khối 12 thành phố Hà Nội 2025 [Test tự sinh]
Điểm: 5
Hải dùng ổ khóa số (Hình ảnh) để khóa tủ cá nhân tại đội tuyển.
Khóa gồm có bốn vòng số, mỗi vòng gồm ~10~ chữ số từ ~0~ đến ~9~. Các vòng số của khóa này có thể xoay tròn theo chiều kim đồng hồ hoặc ngược lại.
Hải đặt mật khẩu khóa của mình theo thứ tự từ trên xuống dưới của vị trí chốt là {~2~, ~0~, ~2~, ~5~}. Mỗi lần khóa, Hải xoay các số đi, khi nào muốn mở thì lại đưa các số về đúng dãy {~2~, ~0~, ~2~, ~5~}. Mỗi lần xoay thì một chữ số sẽ chuyển thành số kề bên trái hoặc kề bên phải của nó.
Chú ý: kề bên trái của ~0~ là ~9~, kề bên phải của ~9~ là ~0~.
Yêu cầu: Cho biết ~4~ chữ số ~A, B, C, D~ lần lượt là các chữ số đang xuất hiện từ trên xuống dưới của vị trí chốt. Em hãy lập trình tính giúp Hải xem phải xoay ít nhất bao nhiêu lần để có thể mở khóa.
INPUT
Gồm bốn chữ số ~A, B, C, D~ trên cùng một dòng, cách nhau bởi một dấu cách (~0 ≤ A, B, C, D ≤ 9~).
OUTPUT
Một số nguyên duy nhất là kết quả của bài toán.
SAMPLE INPUT
2 3 8 1
SAMPLE OUTPUT
11
Cách xoay ít lần nhất để mở khóa là:
- Chữ số thứ nhất giữ nguyên;
- Chữ số thứ hai xoay từ ~3~ thành ~0~ mất ~3~ lần xoay;
- Chữ số thứ ba xoay từ ~8~ thành ~2~ mất ~4~ lần xoay như sau: ~8 → 9 → 0 → 1 → 2~;
- Chữ số thứ tư xoay từ ~1~ thành ~5~ mất ~4~ lần xoay.
Tổng số lần xoay là: ~0 +3 +4 +4 = 11~.
Điểm: 5
Một cửa hàng trên sản thương mại điện tử có ~N~ sản phẩm khác nhau được niêm yết với giá tiền lần lượt là ~A_1, A_2, ..., A_N~. Việt muốn mua hai sản phẩm, mỗi sản phẩm mua tối đa một lần, sao cho tổng số tiền phải trả nằm trong khoảng từ ~L~ đến ~R~.
Yêu cầu: Em hãy lập trình đưa ra số tiền nhỏ nhất mà Việt phải trả khi mua hai sản phẩm khác nhau mà tổng số tiền phải trả nằm trong đoạn ~[L, R]~.
INPUT
- Dòng đầu tiên gồm ba số nguyên dương ~N, L,R~ (~N ≤ 10^6~; ~1 ≤ L ≤ R ≤ 10^9~).
- Dòng thứ hai gồm ~N~ số nguyên dương ~A_1, A_2, ..., A_N~ (~A_i ≤ 10^9~; ~1 ≤ i ≤ N~).
OUTPUT
Một số nguyên duy nhất là kết quả của bài toán. Dữ liệu đảm bảo luôn tồn tại ít nhất một cách mua thỏa mãn.
SAMPLE INPUT
5 5 9
8 1 2 2 5
SAMPLE OUTPUT
6
Mua hai sản phẩm ~2~ và ~5~ với tổng số tiền phải trả là ~6~.
SUBTASKS
- ~80 \%~ số test có ~N \le 10^3~.
- ~20 \%~ số test còn lại không có ràng buộc gì thêm.
Điểm: 4
Khu phố Nam ở đã treo ~N~ chiếc đèn lồng, được đánh số từ ~1~ đến ~N~, từ trái sang phải. Ban đầu, chiếc đèn lồng thứ ~i~ có màu kí hiệu ~A_i~, (~1 ≤ A_i ≤ 9~). Một dãy đèn lồng liên tiếp được gọi là cát tường nếu có không quá ~K~ màu khác nhau, độ dài của dãy đèn được tính là số lượng đèn trong dãy đó.
Để chào mừng năm mới sắp đến, khu phố của Nam quyết định thay một số đèn sao cho xuất hiện dãy đèn cát tường là dài nhất có thể. Do ngân sách có hạn, khu phố chỉ thay thế được tối đa ~X~ chiếc đèn lồng.
Ví dụ: Với ~K = 2~, xét dãy ~6~ đèn lồng liên tiếp có kí hiệu màu của từng chiếc là (~4, 1, 5, 3, 3, 1~).
Dãy này đang xuất hiện dãy cát tường dài nhất có độ dài ~3~ là {~5, 3, 3~} hoặc {~3, 3, 1~}. Khi ~X = 1~, ta có thể thay đèn thứ ~3~ thành màu ~1~ hoặc màu ~3~, được dãy đèn có kí hiệu màu là {~4, 1, 1, 3, 3, 1~} hoặc {~4, 1, 3, 3, 3, 1~} thì sẽ xuất hiện dãy cát tường dài nhất có độ dài ~5~.
Yêu cầu: Em hãy lập trình xác định độ dài lớn nhất của dãy đèn cát tường sau khi thay thế tối đa ~X~ chiếc đèn.
INPUT
- Dòng đầu tiên gồm ba số nguyên dương ~N, K, X~ (~1 \le K \le 9~, ~1 \le X \le N \le 10^5~) với ~N~ là số đèn lồng đã treo, ~K~ là giá trị lớn nhất về số màu trong dãy đèn cát tường, ~X~ là số lượng đèn nhiều nhất có thể thay thế.
- Dòng thứ hai gồm ~N~ số nguyên dương ~A_1, A_2, ..., A_N~ (~1 \le A_i \le 9~) mô tả màu của chiếc đèn thứ ~i~.
OUTPUT
Một số nguyên duy nhất là kết quả của bài toán.
SAMPLE INPUT
6 2 2
1 9 3 2 3 5
SAMPLE OUTPUT
5
Một trong những cách thay thế ~2~ chiếc đèn để khu phố xuất hiện dãy ~5~ đèn liên tiếp cát tường là:
- Thay thế đèn thứ ~2~ thành màu ~3~, thay thế đèn thứ ~4~ thành màu ~3~.
- Dãy đèn sau khi thay thế sẽ có màu: {~1, 3, 3, 3, 3, 5~}.
SUBTASKS
- ~40 \%~ số test có ~N \le 10^2~, ~1 \le A_i \le 2~.
- ~30 \%~ số test có ~N \le 10^3~, ~K = X = 1~.
- ~20 \%~ số test có ~N \le 10^5~, ~K = 1~.
- ~10 \%~ số test không có ràng buộc gì thêm.
Điểm: 3
Công ty của Chiến tổ chức trò chơi chọn số trong buổi tiệc cuối năm. Ban tổ chức chuẩn bị sẵn một bộ số gồm ~N~ số nguyên ~A_1, A_2, ..., A_N~ và ~N~ tấm thẻ. Trên mỗi tấm thẻ ghi một số tự nhiên có giá trị từ ~1~ đến ~N~, các giá trị trên thẻ đôi một khác nhau. Ban tổ chức sẽ phát cho mỗi người chơi một tấm thẻ bất kỳ trong ~N~ tấm thẻ trên. Luật chơi đưa ra như sau:
- Giả sử người chơi nhận được tấm thẻ ghi số nguyên ~K~.
- Sau đó, người chơi chọn ra tối đa ~K~ đoạn con trên bộ số ban đầu mà Ban tổ chức đã chuẩn bị, mỗi đoạn gồm một hoặc nhiều phần tử liên tiếp, các đoạn con không có phần tử chung. Người chơi có quyền không chọn đoạn con nào.
- Điểm của người chơi là tổng các số trong các đoạn đã chọn. Ban tổ chức sẽ trao phần thưởng tương ứng với số điểm mà người chơi đạt được.
Yêu cầu: Có ~Q~ người chơi khác nhau. Em hãy lập trình đưa ra số điểm lớn nhất mà mỗi người chơi có thể nhận được.
INPUT
- Dòng đầu tiên chứa hai số nguyên ~N~, ~Q~ (~1 ≤ Q ≤ N ≤ 10^5~) tương ứng số lượng phần tử trong bộ số và số lượng người tham gia trò chơi.
- Dòng thứ hai chứa ~N~ số nguyên, số nguyên thứ ~i~ biểu diễn giá trị của ~A_i~ (~-10^4 ≤ A_i ≤ 10^4~).
- Dòng thứ ba chứa ~Q~ số nguyên, số nguyên thứ ~i~ là ~K_i~ (~1 ≤ K_i ≤ N~) mô tả số ghi trên tầm thẻ của người chơi thứ ~i~. Các ~K_i~ đảm bảo phân biệt và được sắp xêp theo thứ tự tăng dân.
OUTPUT
Gồm ~Q~ dòng, dòng thứ ~i~ tương ứng là kết quả của người chơi thứ ~i~ khi được phát tấm thẻ ghi số ~K_i~.
SAMPLE INPUT
5 3
1 -1 2 -2 3
1 2 5
SAMPLE OUTPUT
3
5
6
- Với ~K_1 = 1~, chọn đoạn ~[5, 5]~.
- Với ~K_2 = 2~, chọn đoạn ~[3, 3]~ và đoạn ~[5, 5]~.
- Với ~K_3 = 3~, chọn đoạn ~[1, 1]~, ~[3, 3]~ và ~[5, 5]~.
SUBTASKS
- ~20 \%~ số test có ~N \le 10^5~, ~Q = 1~, ~K = 1~.
- ~20 \%~ số test có ~N \le 10^5~, ~Q = 1~, ~K \le 2~.
- ~20 \%~ số test có ~N \le 10^5~, ~Q = 1~, ~K \le 50~.
- ~20 \%~ số test có ~N \le 10^5~, ~Q = 1~, ~K \le 10^5~.
- ~20 \%~ số test không có ràng buộc gì thêm.
Điểm: 3
Thẳng tham gia thử thách "check-in" trong hội chợ tết của thành phố. Hội chợ gồm có ~N~ điểm bán hàng được đánh số từ ~1~ đến ~N~. Các điểm bán hàng được nối với nhau bởi ~M~ đường hai chiều, mỗi đường có một cửa chắn với mã khóa là một số nguyên dương. Các mã khóa trên cửa chắn là đôi một khác nhau. Có ~K~ điểm bán hàng đặc biệt ~S_1, S_2, ..., S_K~ là điểm "check-in" để hoàn thành thử thách.
Ở mỗi lượt, ban đầu cửa chắn tại tất cả các con đường đều khóa. Người chơi sẽ nhận được thông tin gồm hai số tự nhiên ~X~ và ~D~ tương ứng là số hiệu của điểm bán hàng xuất phát và chìa khóa có số ~D~.
Chìa khóa có số ~D~ sẽ mở được những cánh cửa có mã khóa là bội của ~D~. Ví dụ: chìa khóa có số ~2~ sẽ mở được các cánh cửa bị khóa bởi mã khóa là ~2~, ~4~, ~6~, ~8~, ...; chìa có số ~7~ sẽ mở được các cửa bị khóa bởi mã khóa là ~7, 14, 21, 28~, ... Người chơi cần tìm đường đi như sau:
- Xuất phát từ điểm bán hàng ~X~.
- Đích đến là một trong các điểm bán hàng đặc biệt ~S_1, S_2, ..., S_K~.
- Số lượng con đường đi qua là nhỏ nhất.
Yêu cầu: Thắng tham gia ~Q~ lượt chơi, với mỗi lượt Thắng nhận được một cặp số (~X~, ~D~). Em hãy lập trình đưa ra số lượng con đường nhỏ nhất Thắng cần đi qua để đến đích tại mỗi lượt chơi.
INPUT
- Dòng đầu tiên gồm bốn số nguyên dương ~N, M, K, Q~ (~N, M, Q ≤ 3 \times 10^5~, ~1 ≤ K ≤ N~) tương ứng lần lượt là số lượng điểm bán hàng, sô lượng con đường nối giữa ~N~ điểm bán, số lượng điêm bán đặc biệt và số lượt chơi.
- Dòng thứ hai gồm ~K~ số nguyên dương ~S_1, S_2, ..., S_k~ (~1 ≤ S_i ≤ N~, ~1 ≤ i ≤ K~) mô tả các điểm bán hàng đặc biệt.
- ~M~ dòng sau, mỗi dòng gồm ba số nguyên ~u, v, c~ (~1 ≤ u, v ≤ N~, ~1 ≤ c ≤ 10^6~) mô tả có một đường hai chiều nối giữa điểm bán ~u~ và điểm bán ~v~ mà trên đường đó có một cánh cửa chắn với mã khóa là ~c~.
- ~Q~ dòng sau, mỗi dòng gồm hai số nguyên ~X~ và ~D~ là thông tin của mỗi lượt chơi.
OUTPUT
Gồm ~Q~ dòng, tương ứng với ~Q~ lượt chơi, nêu có đường đi thỏa mãn yêu cầu đề bài thì in ra số con đường nhỏ nhất Thắng cần đi qua để đến đích, ngược lại, nếu không có cách nào để đi đến đích thì in ra ~-1~.
SAMPLE INPUT
5 7 2 4
4 5
3 4 14
1 2 16
2 4 5
1 4 7
4 5 9
1 3 8
3 5 4
1 2
1 5
1 1
2 4
SAMPLE OUTPUT
2
-1
1
3
- Ở lượt chơi ~1~, có thể chọn đường đi: ~1 → 3 → 5~ hoặc ~1 → 3 → 4~ đều có số lượng con đường đi qua nhỏ nhất là ~2~.
- Ở lượt chơi ~2~, không có đường đi thỏả mãn.
- Ở lượt chơi ~3~, có thể chọn đường đi: ~1 → 4~.
- Ở lượt chơi ~4~, có thể chọn đường đi: ~2 → 1 → 3 → 5~.
SUBTASKS
- ~30 \%~ số test có ~Q = 1~, ~D = 1~.
- ~15 \%~ số test có ~K = 1~, ~D \le 10~.
- ~25 \%~ số test có ~D \le 10~.
- ~20 \%~ số test có ~D \le 10^4~.
- ~10 \%~ số test không có ràng buộc gì thêm.