You are on page 1of 9

Bài 1. Tìm số thứ N(FindN.

*)
Cho một dãy số vô hạn các số nguyên được sắp xếp tăng dần, mỗi số chỉ chứa các chữ số
4 và 7.
Yêu cầu: Hãy tìm số thứ N trong dãy. Sáu số đầu tiên trong dãy gồm: 4, 7, 44, 47, 74, 77.
Dãy số được đánh thứ tự từ 1.
Dữ liệu: Đọc vào từ file FindN.inp gồm:
 Dòng đầu tiên chứa số nguyên T – cho bộ dữ liệu cần kiểm tra
 T dòng sau mỗi dòng chứa 1 số nguyên N.
Kết quả: Ghi ra file FindN.out:
 Ứng với mỗi bộ dữ liệu đầu vào, in ra số thứ N trong dãy đã cho.
Ví dụ:
FindN.inp FindN.out
5 7
2 44
3 74
5 77
6 744
11
Bài 2. Số Chẵn – Lẻ (Evenodds.*)
Là một người khó tính, Nam thường xuyên không hài lòng với tình trạng hiện tại của sự
vật, đặc biệt với thứ tự của các số tự nhiên nguyên dương. Cậu quyết tâm sắp xếp lại chúng.
Nhưng có quá nhiều số tự nhiên, vì vậy Nam quyết định bắt đầu với n số đầu tiên. Nam
viết xuống dãy số sau đây: trước hết là tất cả các số nguyên lẻ từ 1 đến n (theo thứ tự tăng
dần), sau đó tất cả các số nguyên chẵn từ 1 đến n (cũng theo thứ tự tăng dần).
Yêu cầu: Hãy giúp Nam tìm ra số nào sẽ đứng ở vị trí số k.
Dữ liệu vào: Một dòng duy nhất chứa số nguyên n và k (1 ≤ k ≤ n ≤ 1012).
Dữ liệu ra: In số sẽ đứng ở vị trí số k.
Ví dụ:
EVENODDS.INP EVENODDS.OUT
10 3 5
77 6
Bài 3. Toán học(math.*)
Nam mới vào học tại một ngôi trường mới và cậu ấy yêu thích lớp học Toán. Hôm
nay, Lớp học của cậu ấy đã nghiên cứu các biểu thức số học. Vào cuối giờ, giáo viên đã
viết ba số nguyên dương a, b, c trên bảng. Nhiệm vụ của các bạn học sinh là chèn các phép
toán '+' và '*', và có thể sử dụng dấu ngoặc giữa các số để giá trị của biểu thức cho kết quả
càng lớn càng tốt.
Ví dụ: Cho 3 số 1, 2 và 3 trên bảng. Dưới đây là một số cách đặt phép toán và dấu ngoặc:
1+2*3=7
1 * (2 + 3) = 5
1*2*3=6
(1 + 2) * 3 = 9
Lưu ý rằng bạn có thể chèn phép tính giữa a và b, và giữa b và c, giữ nguyên vị trí các số
ban đầu. Giá trị tối đa đạt được là 9.
Yêu cầu: Cho a, b và c in giá trị tối đa có thể nhận được.
Dữ liệu vào: Chứa ba số nguyên a, b và c, mỗi số nguyên trên một dòng (1 ≤ a, b, c ≤ 10).
Dữ liệu ra: In giá trị tối đa của biểu thức nhận được.
Ví dụ:
MATH.INP MATH.OUT
1 9
2
3
2 60
10
3
Bài 4. Đếm bội số(CountDiv.*)
Cho 4 số nguyên 𝐿, 𝑅, 𝑎, 𝑏.
Yêu cầu: Hãy đếm số lượng các bội số của a hoặc b có giá trị thuộc đoạn [𝐿, 𝑅]
Dữ liệu: Đọc vào từ file CountDiv.inp gồm:
 Dòng đầu tiên của đầu vào chứa số nguyên 𝑇(1 ≤ 𝑇 ≤ 100) cho biết số bộ dữ liệu
cần kiểm tra.
 Mỗi bộ dữ liệu gồm một dòng chứa 4 số nguyên 𝐿, 𝑅, 𝑎, 𝑏(1 ≤ 𝐿 ≤ 𝑅 ≤ 109 ; 1 ≤
𝑎, 𝑏 ≤ 104 ).
Kết quả: Ghi ra file CountDiv.out:
 Tương ứng với mỗi bộ dữ liệu đầu vào, in ra một số là đáp án bài toán trên một dòng.
Ví dụ:
CountDiv.inp CountDiv.out
2 2
5 11 4 6 289
3 1000 5 9
Bài 5. Tìm giá trị dương nhỏ nhất – MaxPositive.*
1 1 1
Cho biểu thức 𝑇 = 1 + + + ⋯ + và số thực x.
3 5 2𝑁−1
Yêu cầu: Tìm số nguyên dương 𝑁 lớn nhất thỏa mãn 𝑇 < 𝑥.
Dữ liệu: vào từ file MaxPositive.inp
 Dòng đầu chứa T số nguyên cho biết số bộ dữ liệu cần test.
 T dòng tiếp theo, mỗi dòng là 1 bộ dữ liệu chứa số thực x.
Ràng buộc:
1 ≤ 𝑇 ≤ 100; 1 ≤ 𝑥 ≤ 100.
Kết quả: In ra file MaxPositive.out
 Ứng với bộ dữ liệu vào, in ra 1 dòng là số nguyên N tìm được theo yêu cầu.
Ví dụ:
MaxPositive.inp MaxPositive.out
1 3
1.6
Bài 6. Các hình chữ nhật có cùng chu vi – Rectangles.*
Cho biết số nguyên dương 𝑁.
Yêu cầu: Hãy tìm và in ra diện tích của tất cả các hình chữ nhật có chu vi N và có độ dài
các cạnh là số nguyên dương.
Dữ liệu: vào từ file Rectangles.inp
 Dòng đầu chứa 𝑇 số nguyên cho biết số bộ dữ liệu cần test.
 𝑇 dòng tiếp theo, mỗi dòng là 1 bộ dữ liệu chứa số nguyên dương 𝑁.
Ràng buộc:
1 ≤ 𝑇 ≤ 100; 1 ≤ 𝑁 ≤ 10000.
Kết quả: Ghi ra file Rectangles.out
 Ứng với mỗi bộ dữ liệu test, in ra 1 dòng chứa các số đo diện tích các hình chữ nhật
khác nhau có chu vi N. các giá trị diện tích cần được in theo trật tự tăng dần và chỉ
in các giá trị khác nhau. Nếu không tìm được hình chữ nhật nào thỏa mãn yêu cầu
thì in ra -1.
Ví dụ:
Rectangles.inp Rectangles.out
3 -1
5 -1
2 46
10

Bài 7. Giải Phương trình – Equation.*


Cho biết các số nguyên 𝐴, 𝐵 và 𝑘.
Yêu cầu: Hãy tìm tất cả các nghiệm nguyên có giá trị tuyệt đối trong phạm vi 10 của
phương trình 𝐴𝑥 + 𝐵𝑦 = 𝑘.
Dữ liệu: Đọc vào từ file Equation.inp
 Dòng đầu chứa T số nguyên cho biết số bộ dữ liệu cần test.
 T dòng tiếp theo, mỗi dòng là 1 bộ dữ liệu chứa ba số nguyên 𝐴, 𝐵 𝑣à 𝑁.
Ràng buộc:
 1 ≤ 𝑇 ≤ 100.
 Các số nguyên 𝐴, 𝐵, 𝑘 có giá trị tuyệt đối không quá 100.
 Các giá trị 𝑥, 𝑦 là số nguyên có giá trị tuyệt đối không quá 10.
Kết quả: ghi ra file Equation.out
 Dòng đầu in ra số bộ đáp án k.
 Nếu 𝑘 > 0 thì k dòng sau, mỗi dòng in ra hai số nguyên lần lượt là x,y cách nhau
một dấu cách, mô tả 1 bộ đáp án. Các bộ đáp án được in theo thứ tự tăng dần của x.
xem ví dụ để hiểu rõ hơn.
Ví dụ:
Equation.inp Equation.out
1 4
353 -9 6
-4 3
10
6 -3
Bài 8. Kiểm tra số Fibonacci – FiboCheck.*
Dãy Fibonacci là dãy số nổi tiếng, được nhà toán học người Ý công bố vào năm 1202. Có
thể mô tả dãy bằng công thức sau:
1 𝑛≤2
𝐹𝑖𝑏𝑜𝑛𝑎𝑐𝑐𝑖 (𝑛) = { ( ) ( )
𝐹𝑖𝑏𝑜𝑛𝑎𝑐𝑐𝑖 𝑛 − 1 + 𝐹𝑖𝑏𝑜𝑛𝑎𝑐𝑐𝑖 𝑛 − 2 𝑛 > 2
Dãy 10 số Fibonacci đầu tiên là: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55.
Cho 1 số nguyên dương 𝑛.
Yêu cầu: Hãy cho biết 𝑛 có thuộc dãy Fibonacci hay không? Nếu có thì thì nó là số thứ
mấy trong dãy, nếu không phải số Fibonacci thì in ra -1.
Dữ liệu: Đọc vào từ file FiboCheck.inp
 Dòng đầu chứa 𝑇 số nguyên cho biết số bộ dữ liệu cần test.
 𝑇 dòng tiếp theo, mỗi dòng là 1 bộ dữ liệu chứa số nguyên dương 𝑁.
Ràng buộc:
1 ≤ 𝑇 ≤ 100; 1 ≤ 𝑛 ≤ 2 𝑥 109
Kết quả: ghi ra file FiboCheck.out:
 Ứng với mỗi bộ dữ liệu in ra một dòng ghi số thứ tự của 𝑛 trong dãy Fibonacci hoặc
ghi số -1 nếu 𝑛 không thuộc dãy Fibonacci.
Ví dụ:
FiboCheck.inp FiboCheck.out
3 1
1 -1
4 4
3
Bài 9. Xếp kim tự tháp – Pyramid.*
An có 𝑁 khối lập phương kích thước 1 𝑥 1 𝑥 1. Cậu định xếp các khối lập phương
này thành một tự tháp, theo cách như sau: tầng cao nhất của kim tự tháp gồm 1 khối, tầng
thứ 2 gồm 1 + 2 = 3 khối, tầng thứ 3 gồm 1 + 2 + 3 = 6 khối, và cứ tiếp tục như vậy
cho tới khi hết N khối gỗ hoặc không. Như vậy, tầng thứ 𝑖 ( tính từ đỉnh xuống) của kim tự
tháp phải có 1 + 2+. . +(𝑖 − 1) + 𝑖 khối.
Yêu cầu: An muốn biết chiều cao tối đa của kim tự tháp mà cậu ta có thể xếp từ các khối
đã cho là bao nhiêu.
Dữ liệu: Vào từ file Pyramid.inp:
- Một dòng chứa số nguyên 𝑁(1 ≤ 𝑁 ≤ 104 ) là số khối lập phương An có.
Kết quả: ghi ra file Pyramid.out:
 Chiều cao tối đa có thể có của kim tự tháp mà An có thể xếp được.
Ví dụ:
Pyramid.inp Pyramid.out
1 1
25 4
Giải thích: Hình dưới mô tả kim tự tháp mà An có thể xếp được trong ví dụ 2:

Bài 10. Mang gạo – Rices.*


Nam được mẹ giao nhiệm vụ giao gạo cho các hộ gia đình trong làng. Bà chỉ có 2 loại túi
đựng là loại 5 kg và 3 kg. Nam sẽ phải sử dụng 2 loại túi đựng trên để đong đủ số gạo mà
mẹ giao.
Ví dụ: có 18kg gạo thì Nam sẽ phân ra 3 bịch 5kg và 1 bịch 3kg hoặc 6 bịch 3kg.
Yêu cầu: Hãy giúp Nam chia gạo cho mẹ với số lượng túi sử dụng ít nhất có thể. Nếu
không đong đủ hết gạo thì in ra -1.
Dữ liệu: đọc vào từ file Rices.inp:
 Dòng duy nhất chứa số 𝑁 là số gạo mà mẹ giao cho Nam(1 < 𝑁 ≤ 5000).
Kết quả: ghi ra file Rices.out: Đáp án của bài toán.
Ví dụ:
Rices.inp Rices.out
18 4
4 -1

Bài 11. Đèn màu- DENMAU.*


Thành phố Vũng Tàu đang chuẩn bị kỷ niệm ngày giải phóng (27/04) nên các con đường
lung linh dãy đèn màu. Dọc con đường từ rạp chiếu phim về nhà, Dũng và Mai thấy một
dãy 𝑛 chùm đèn màu cách đều nhau đánh số lần lượt 1, 2, ..., 𝑛. Mỗi chùm đèn có một màu
sắc riêng và để đơn giản, có thể coi nó như là một số nguyên dương. Có tất cả 𝑚 giá trị
màu khác nhau. Dũng muốn chụp một bức ảnh gồm các chùm đèn liên tiếp của dãy chùm
đèn này. Trong bức ảnh 𝑚 giá trị màu của các chùm đèn đều xuất hiện. Để chất lượng ảnh
tốt, Dũng muốn số lượng chùm đèn màu có trong ảnh là nhỏ nhất có thể. Mai đã giúp
Dũng tìm ra được dãy chùm đèn màu thỏa mãn các yêu cầu trên bằng cách quan sát trực
tiếp.
Còn bạn? Chỉ cần biết dãy số mô tả màu của dãy chùm đèn màu bạn có thể cho biết số
lượng chùm đèn màu có trong bức ảnh của Dũng được không?
Yêu cầu: Cho biết các giá trị 𝑛, 𝑚 và dãy màu 𝑎1 , 𝑎2 , … , 𝑎𝑛 . Hãy xác định số chùm đèn
màu có trong bức ảnh của Dũng
Dữ liệu: Vào từ file văn bản DENMAU.INP
 Dòng 1: Chứa 2 số nguyên dương 𝑛, 𝑚 (𝑛 ≤ 105 , 𝑚 ≤ 𝑛)
 Dòng 2: Chứa 𝑛 số nguyên dương 𝑎1 , 𝑎2 , … , 𝑎𝑛 (1 ≤ 𝑎𝑖 ≤ 106 )
Hai số liên tiếp trên cùng một dòng của file BAI4.INP cách nhau một dấu trống
Kết quả: Ghi ra file văn bản DENMAU.OUT một số nguyên - số lượng chùm đèn màu có
trong bức ảnh của Dũng.
Ví dụ:
DENMAU.INP DENMAU.OUT
73 4
1221133
Giải thích: Dũng chụp bức ảnh chứa các chùm đèn màu 3,4,5,6
Bài 12. SEQ8.*
Cho một dãy số nguyên gồm N phần tử 𝑎1 , 𝑎2 , . . . 𝑎𝑛 .
Biết rằng dãy con tăng đơn điệu là 1 dãy 𝑎𝑖1 , 𝑎𝑖2 , … , 𝑎𝑖𝑘 thỏa mãn
𝑖1 < 𝑖2 < . . . < 𝑖𝑘 và 𝑎𝑖1 < 𝑎𝑖2 < ⋯ < 𝑎𝑖𝑘 .
Yêu cầu: Hãy cho biết số dãy con tăng đơn điệu ít nhất có dãy số gồm 𝑛 phần tử trên
VD: dãy (6, 7, 4, 2, 5) thì sẽ có ít nhất 3 dãy con tăng đơn điệu là (6,7) và (4,5) và (2)
Dữ liệu vào : SEQ8.INP
 Dòng 1 gồm 1 số nguyên là số N
 Dòng thứ 2 ghi N số nguyên 𝑎1 , 𝑎2 , . . 𝑎𝑛 (1 ≤ 𝑎𝑖 ≤ 109 ).
Kết quả : SEQ8.OUT : in ra kết quả là số dãy con tăng đơn điệu ít nhất
Ví dụ:

_ SEQ8.INP SEQ8.OUT
7 4
8 -10 6 -5 9 1 -3

Giải thích: dãy con đơn điệu độ dài 4 ví dụ là dãy (-10, -5, 1, 12).
𝑆𝑢𝑏1: 𝑛 < 5000.
𝑠𝑢𝑏2 ∶ 𝑛 <= 500000.
Bài 13. SEQ9.*
Cho dãy gồm n số nguyên dương và một số nguyên K. Bạn hãy giúp Tèo tìm ra đoạn con
dài nhất gồm các phần tử liên tiếp sao cho tổng các phần tử này chia hết cho K.
Dữ liệu vào: SEQ9.INP
 Dòng 1 là N và K (1 ≤ 𝑘 ≤ 105 )
 Dòng thứ 2 là danh sách n phần tử 𝑎1 , 𝑎2 , … , 𝑎𝑛 ; 0 ≤ 𝑎𝑖 ≤ 109 )
Kết quả: SEQ9.OUT : Là độ dài lớn nhất tìm được.
Ví dụ:
SEQ9.INP SEQ9.OUT
94 6
3 9 9 5 1 1 10 3 5
Giới hạn: 𝑆𝑢𝑏1: 𝑛 <= 5000; 𝑆𝑢𝑏2: 𝑛 <= 106 .

Bài 14. SEQ10.*


Cho dãy số gồm n số nguyên 𝑎1 , 𝑎2 , … , 𝑎𝑛 . Một đoạn con của dãy được định nghĩa là dãy
𝑎𝑖 , 𝑎𝑖+1 , … , 𝑎𝑗 với 1 ≤ 𝑖 ≤ 𝑗 ≤ 𝑛, đoạn con này có chiều dài là (𝑗 − 𝑖 + 1).
Bây giờ ta chọn hai đoạn con X và Y không có phần tử chung và có cùng chiều dài là
𝑘 (𝑘 > 0). Ký hiệu hai đoạn đó là 𝑥1 , 𝑥2 , . . . , 𝑥𝑘 và 𝑦1 , 𝑦2 , . . . , 𝑦𝑘 . Sau đó tính tổng:
𝑆 = 𝑥1 . 𝑦𝑘 + 𝑥2 . 𝑦𝑘−1 + … + 𝑥𝑘−1 . 𝑦2 + 𝑥𝑘 . 𝑦1 .
Yêu cầu: với các đoạn con 𝑋, 𝑌 có thể có trong dãy 𝑛 số trên, hãy tìm giá trị lớn nhất của
𝑆.
Dữ liệu vào: SEQ10.INP
 Dòng thứ nhất là số nguyên n.
 Dòng thứ hai là n số nguyên 𝑎1 , 𝑎2 , … , 𝑎𝑛 . (|𝑎𝑖| ≤ 106 ), mỗi số cách nhau một
khoảng trắng.
Kết quả: SEQ10.OUT: Là giá trị lớn nhất của 𝑆
Ví dụ:
SEQ10.INP SEQ10.OUT
8 13
23030321
5 72
3 2 -9 1 -8
Giải thích : Test 1: X = { 2, 3 }, Y = { 3, 2 }
Test 2: X = { -8 }, Y = { -9 }
Sub1: 60% số test có n ≤ 50.
Sub2: 40% số test còn lại có n ≤ 3000.

You might also like