Professional Documents
Culture Documents
Cho dãy số 𝑎1 , 𝑎2 , … , 𝑎𝑛 . Tìm cách chia dãy 𝑎 thành 𝑠 + 1 đoạn liên tiếp sao cho tổng các
số trong đoạn lớn nhất là nhỏ nhất. Đoạn lớn nhất là đoạn có tổng lớn nhất trong các đoạn
được chia.
Dữ liệu: Vào từ file CHIADAY.INP
• Dòng đầu tiên chứa 2 số nguyên 𝑛, 𝑠 (𝑛 ≤ 1000, 𝑠 ≤ 50)
• Dòng thứ 2 chứa 𝑛 số nguyên 𝑎1 , 𝑎2 , … , 𝑎𝑛 (|𝑎𝑖 | ≤ 106 )
Kết quả: Ghi ra file CHIADAY.OUT một số nguyên duy nhất là tổng của đoạn lớn nhất
theo cách chia tìm được.
Ví dụ:
CHIADAY.INP CHIADAY.OUT
5 2 8
8 2 1 5 6
Cho một mảng phần tử, ta định nghĩa vẻ đẹp của một mảng là ước chung lớn nhất của
tất cả các phần tử của nó. Vì muốn vẻ đẹp càng lớn càng tốt, ta có thể giảm giá trị các
phần tử đi không quá đơn vị.
Yêu cầu: Cho mảng phần tử và . Hãy tính vẻ đẹp lớn nhất có thể của mảng đã cho.
Kết quả: Ghi ra file văn bản SUBKGCD.OUT một số duy nhất là vẻ đẹp lớn nhất có thể
của mảng đã cho.
Ví dụ:
SUBKGCD.INP SUBKGCD.OUT
5 3 7
8 21 52 15 77
SHUFFLE
Hôm nay, sau khi ngủ dạ y, Bờm quyế t định nghê nhạc. Anh bạ t danh sách chứa cá c bà i
mình yêu thích, và sử dụ ng chức nang shufflê củ a phà n mề m nghe nhạc để giữ chô cá c
bà i há t xuá t hiệ n mộ t cá ch ngẫu nhiên.
Chức năng shufflê sễ thực hiệ n như sau: Giả sử danh sách các bài hát của Bờm gồm 𝑛
bài, được đánh số từ 1 đến 𝑛. Trước khi phát nhạc, chức năng shufflê sẽ sinh hôá n vị
ngã u nhiên của tập 1. . 𝑛 và phát các bài hát theo thứ tự của hoán vị đó chô đế n khi
tá t cả cá c bà i há t đã được phát. Sau đố nố shufflê lại và bá t đà u chạ y lạ i danh sách
theo hoán vị mới sinh.
Ví dụ: Danh sách của Bờm có 6 bài hát (1, 2, 3, 4, 5, 6). Lần 1, phần mềm sẽ phát lần
lượt theo 1 thứ tự là hoán vị ngẫu nhiên của tập 1..6 (ví dụ: 1, 6, 5, 2, 4, 3). Khi tất cả
các bài đã được phát theo đúng thứ tự đó, chức năng shufflê sẽ sinh 1 hoán vị ngẫu
nhiên khác (ví dụ: 4, 5, 1, 2, 6, 3) và lại phát theo thứ tự này. Như vậy, các bài hát mà
Bờm sẽ nghe lần lượt là: 1, 6, 5, 2, 4, 3, 4, 5, 1, 2, 6, 3… và cứ tiếp tục như vậy.
Bạ n được cung cá p mộ t lịch sử gồm 𝑚 bà i há t đã được chơi trông buổ i sá ng (thêô
đú ng thứ tự mà Bờm đã nghê). Tuy nhiên, lịch sử nà y lạ i chưa hôà n chỉnh, bởi vì anh
ta bá t đà u viế t lạ i lịch sử cá c bà i há t tạ i mộ t thời điể m bá t kỳ trông buổ i sá ng hôm đố
(mộ t số bà i há t cố thể đã được chơi rồ i, rồ i anh ta mới bá t đà u viế t lạ i)
Yêu cầu: Từ bả n lịch sử nà y, bạ n cần xác định cố baô nhiêu điể m khá c nhau cố thể sễ
là thời điể m mà phần mềm shuffle danh sách cá c bà i há t. Mộ t vị trí cố thể là mộ t thời
điể m bắt đầu shuffle nế u nố chia dã y histôry thà nh cá c đôạ n độ dà i 𝑛 (số bà i há t trông
list ) với đôạ n đà n và đôạ n cuố i cố thể ít hơn 𝑛 bà i và không cố khôả ng nà ô chứa mộ t
bà i há t xuá t hiệ n tới 2 là n.
Dồ ng đà u ghi 2 số 𝑛, 𝑚 (0 < 𝑛, 𝑚 ≤ 106 ): số lượng ca khú c trong danh sách và
độ dà i củ a lịch sử mà Bờm đã nghê trông buổi sáng đó.
Dồ ng thứ 2 ghi 𝑚 số trông lịch sử các bài mà Bờm đã nghê.
Kết quả: Ghi ra filê văn bản SHUFFLE.OUT gồm một số duy nhá t là số thời điể m
khá c nhau cố thể là thời điểm shuffle danh sách nà y.
Ví dụ:
SHUFFLE.INP SHUFFLE.OUT
6 6 6
6 5 4 3 2 1
3 5 0
3 3 1 1 1
4 10 1
3 4 4 1 3 2 1 2 3 4
Giải thích têst đầu: cố 6 vị trí cố thể là thời điểm bắt đầu:
(6 5 4 3 2 1),
(..6) (5 4 3 2 1..)
(..6 5)(4 3 2 1..)
(..6 5 4)(3 2 1…)
(..6 5 4 3 )(2 1…)
(..6 5 4 3 2)(1…)
Ràng buộc:
- 50% số test có 𝑛, 𝑚, 𝑞 ≤ 100
- 50% số test còn lại có 𝑛, 𝑚 ≤ 1000; 𝑞 ≤ 104
Cắm trại
Cho bảng vuông kích thước 𝑚 × 𝑛. Các hàng được đánh số 1, 2, … , 𝑚 từ trên xuống dưới. Các cột
được đánh số 1, 2, … , 𝑛 từ trái qua phải. Tại mỗi ô của bảng có thể có một số ô cấm.
Yêu cầu: Cho 𝑄 vị trí ô trên bảng. Với mỗi ô, xác định hình vuông lớn nhất chứa ô đó và không
chứa ô cấm.
Dữ liệu: Vào từ file SQUARE.INP
• Dòng đầu chứa 2 số nguyên dương 𝑚, 𝑛 (𝑚, 𝑛 ≤ 2000)
• 𝑚 dòng tiếp theo, dòng thứ 𝑖 chứa 𝑛 ký tự biểu thị dòng 𝑖 của bảng. Ký tự thứ 𝑗 biểu diễn
ô (𝑖, 𝑗). Giá trị ′#′ biểu diễn ô cấm.
• Dòng tiếp theo ghi số nguyên 𝑄 – số vị trí truy vấn.
• Q dòng tiếp, mỗi dòng chứa 2 số nguyên (𝑥, 𝑦) xác định tọa độ ô truy vấn.
Kết quả: ghi ra file SQUARE.OUT gồm 𝑄 dòng, dòng thứ 𝑖 ghi tương ứng diện tích hình vuông
lớn nhất tìm được, chứa ô trong truy vấn thứ 𝑖.
Ví dụ:
SQUARE.INP SQUARE.OUT
5 5 4
#...# 1
..#..
.....
#...#
#....
5
3 2
2 5
5 4
4 5
1 3