Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

Bài 1.

Ước lớn nhất


Cho hai số nguyên dương N , K .
Yêu cầu: Tìm số nguyên dương X lớn nhất thỏa mãn:
 N chia hết cho X .
 X có chính xác K chữ số.
Input:
 Một dòng duy nhất gồm 2 số nguyên dương N , K .
Output:
 In ra số X thỏa mãn, nếu không tồn tại số X thỏa mãn nào hãy in ra −1.
Sample Input Sample Output
100 2 50
24 1 8
101 2 -1

Giới hạn:
 Subtask 1 ¿ số test¿ : N ≤1 06 , K ≤7 .
 Subtask 2 ¿ số test¿ : N ≤10 12 , K ≤ 13.
Bài 2. Xâu tăng giảm.
Cho một xâu Sgồm các kí tự tiếng anh in thường. Ta định nghĩa một xâu con liên
tiếp S L S L+1 … S R là một xâu tăng giảm nếu:
 Độ dài xâu lớn hơn 2.
 Si−1 < Si > Si +1 hoặc Si−1 > Si < Si +1 với L<i< R .
Yêu cầu: Hãy tìm xâu tăng giảm dài nhất có trong xâu S . Hoặc thông báo rằng
không tồn tại xâu tăng giảm nào có trong xâu S .
Input:
 Một dòng duy nhất gồm xâu kí tự S .
Output:
 In ra độ dài của xâu tăng giảm dài nhất trong xâu S . Nếu không tồn tại xâu
tăng giảm nào hãy in ra -1.
Sample Input Sample Output
abca 3
acde -1

Giới hạn:
 Subtask 1 ¿ số test¿ : |S|≤ 103.
 Subtask 2 ¿ số test¿ : |S|≤ 106 .

Bài 3. Chia bánh trung thu


Trung thu năm nay, lớp mẫu giáo của bạn Thành tổ chức đêm hội trăng rằm. Cô
giáo phân công Thành phát M chiếc bánh trung thu cho các bạn. Lớp có N bạn học
sinh, các bạn được xếp ngồi thành một hàng ngang đánh số từ 1 đến N và Thành
ngồi ở vị trí thứ K .
Một bạn sẽ cảm thấy buồn nếu như:
 Bạn ấy không có bánh trung thu.
 Hoặc người ngồi ngay bên cạnh có số bánh nhiều hơn mình từ 2 chiếc trở
lên.
Thành không muốn bất cứ ai phải cảm thấy buồn và Thành cũng muốn mình được
nhiều bánh nhất có thể.
Yêu cầu: Hãy tính số bánh trung thu tối đa Thành có thể nhận nếu cách phát bánh
của Thành không làm ai buồn.
Input:
 Một dòng duy nhất gồm 3 số nguyên dương N , M , K ( 1≤ K ≤ N ≤ M ) .
Output:
 In ra số bánh trung thu tối đa Thành có thể nhận nếu cách phát bánh của
Thành không làm ai buồn.
Sample Input Sample Output
462 2
3 10 3 4

Giải thích test 1 :


 Thành sẽ phát bánh theo thứ tự là: 1 , 2, 1 , 2. Vì ngồi ở vị trí thứ 2 nên Thành
sẽ nhận được 2 bánh trung thu.
Giới hạn:
 Subtask 1 ¿ số test¿ : M ≤ 103.
 Subtask 2 ¿ số test¿ : M ≤ 106 .
 Subtask 3 ¿ số test¿ : M ≤ 109 .

Bài 4. Đếm dãy


Xem xét một dãy số nguyên dương gồm N phần tử A1 , A 2 ,… , A N .
Dãy B1 , B2 , … , B N được xây dựng như sau:
 Bi= Ai −1 nếu Ai chẵn.
 Bi= Ai +1 nếu Ai lẻ.
Thực hiện tạo dãy C 1 , C 2 , … , C2 N bằng cách gộp 2 dãy A1 , A 2 ,… , A N và B1 , B2 , … , B N
sau đó sắp xếp lại theo thứ tự không giảm.
Yêu cầu: Bạn được cung cấp dãy C 1 , C 2 , … , C2 N và một số nguyên dương K . Hãy
tính số lượng dãy A1 , A 2 ,… , A N thỏa mãn:
 A1 ≤ A 2 ≤ … ≤ A N .
 A1 + A2 +…+ A N =K .
 Từ dãy A1 , A 2 ,… , A N có thể tạo được dãy C 1 , C 2 , … , C2 N .
Input:
 Dòng đầu tiên gồm số nguyên dương T (1≤ T ≤ 5) - ứng với số test.
 Đối với mỗi test:
o Dòng đầu tiên gồm 2 số nguyên dương N , K ( 1 ≤ N ≤103 , 1≤ K ≤2∗106 ) .
o Dòng thứ hai gồm 2 N số nguyên dương C 1 , C 2 , … , C2 N ( 1 ≤C i ≤ 2∗103 ) .
Output:
 In ra kết quả là số lượng dãy A1 , A 2 ,… , A N thỏa mãn. Vì kết quả rất lớn nên
chia lấy dư cho 109 +7.
Sample Input Sample Output
2 1
24 2
1234
25
1234

Giải thích test:


 Ở test 1 , ta có dãy A=[ 1 , 3 ] .
 Ở test 2, ta có dãy A=[1 , 4] hoặc A=[ 2, 3 ] .
Giới hạn:
 Subtask 1 ¿ số test¿ : C i ≤ 2 .
 Subtask 2 ¿ số test¿ : N ≤ 8 và C i ≤ 10.
 Subtask 3 ¿ số test¿ : N ≤10 2 và C i ≤ 100.
 Subtask 4 ¿ số test¿ : N ≤10 3 .

You might also like