You are on page 1of 3

Bài 8. Olympic (Oly.

cpp)

Bài 9. Số lớn nhất


Cho 2 số nguyên X=x1x2...xN và Y=y1y2...yM . Hãy tìm số Z = z1z2...zk (Z nhận được từ X và Y bằng
cách xoá đi một số chữ số) lớn nhất .
Ví dụ : X= 12345
Y= 435012
Thì Z=45 (nhận được từ X bằng cách xoá đi x1 , x2 , x3 ; nhận được từ Y bằng cách xoá đi y2 , y4 , y5 ,
y6)
Input : NUMBER.INP
- Dòng thứ nhất là X.
- Dòng thứ hai là Y.
Ouput : NUMBER.OUT ghi số Z.
Giới hạn : M,N < 1000.
NUMBER.INP NUMBER.OUT
12345 123
4351023
Bài 10: Số nhỏ nhất
Một số nguyên dương x gọi là con của số nguyên dương y nếu ta có thể xoá bớt một số chữ số của y để
được x.
Cho hai số nguyên dương a và b hãy tìm số c nhận cả a và b là con, sao cho giá trị của c là nhỏ nhất
có thể.

Ràng buộc: 1  a, b  10100;


Dữ liệu: Vào từ file văn bản NUMBER2.INP
 Dòng thứ nhất chứa số a
 Dòng thứ hai chứa số b
Kết quả: Ghi ra file văn bản NUMBER2.OUT
 Ghi ra trên một dòng số c.
Ví dụ:
NUMBER2.INP NUMBER2.OUT NUMBER2.INP NUMBER2.OUT
111999111 111999111999 567812345678 1234567812345678
999111999 123456781234

Bài 11. Chuỗi con đối xứng. Mã bài NKPALIN.


Một chuỗi được gọi là đối xứng (palindrome) nếu như khi đọc chuỗi này từ phải sang trái cũng thu được
chuỗi ban đầu.
Yêu cầu: tìm chuỗi con đối xứng dài nhất của một chuỗi s cho trước. Chuỗi con là chuỗi thu được khi
xóa đi một số ký tự từ chuỗi ban đầu (có thể không xóa kí tự nào).
Dữ liệu: vào từ file NKPALIN.INP gồm một dòng duy nhất chứa chuỗi s, chỉ gồm những chữ cái in
thường.
Giới hạn: Độ dài xâu s <=2000.
Kết quả: ghi ra file NKPALIN.OUT là một xâu con đối xứng dài nhất của xâu s. Nếu có nhiều kết quả,
chỉ cần in ra một kết quả bất kỳ.
Ví dụ:

NKPALIN.INP NKPALIN.OUT
lmevxeyzl level

Bài 12: Đếm số Palindrome. Mã bài COUNTPL.


Palindrome là xâu ký tự mà nếu đọc nó từ trái sang phải cũng như từ phải sang trái ta được cùng một
xâu. Một xâu kí tự bất kì luôn có thể biểu diễn như là một dãy các Palindrome nếu như ta coi xâu chỉ gồm một
kí tự luôn là một Palindrome.
Ví dụ xâu “bobseesanna” có thể biểu diễn dưới dạng dãy các Palindrome theo nhiều cách, chẳng hạn:
“bobseesanna” = “bob” + “sees” + “anna”
“bobseesanna” = “bob” + “s” + “ee” + “s” + “anna”
“bobseesanna” = “b” + “o” + “b” + “sees” + “a” + “n” + “n” + “a”

Yêu cầu: Cho xâu kí tự s (chỉ chứa các kí tự chữ cái) cần tìm cách biểu diễn xâu s dưới dạng một dãy
gồm số ít nhất các Palindrome.
Dữ liệu: vào từ file COUNTPL.INP gồm một dòng duy nhất chứa chuỗi s, không quá 1000 kí tự.
Kết quả: ghi ra file COUNTPL.OUT số nguyên k là số lượng ít nhất các Palindrome trong biểu diễn tìm
được.
Ví dụ:
COUNTPL.INP COUNTPL.OUT
bobseesanna 3

Dạng 3. Dạng bài Cái túi


Bài 13. Túi ba gang (BALO1.cpp)
Trong truyện cổ tích "Cây Khế" ta đã biết rằng chim thần chở người anh với một cái túi ba gang đến hòn
đảo đầy vàng bạc châu báu. Người em băn khoăn không biết chọn đồ vật nào cho vào túi vì chỉ có một cái túi
ba gang..
Giả sử rằng trên hòn đảo kia có N đồ vật khác nhau, đồ vật thứ i có giá trị là ci và có thể tích là mi. Cũng
giả sử rằng cái túi mà người em mang đi chỉ có thể tích là M. Bạn hãy giúp người em chọn ra trong N đồ vật
trên một số đồ vật sao cho tổng thể tích của các đồ vật được chọn không vượt quá M và tổng giá trị các đồ vật
được chọn là lớn nhất.
Input: Cho trong file văn bản BALO1.INP
 Dòng đầu tiên ghi hai số N, M (N,M≤1000)
 Dòng 2: chứa n giá trị thể tích của n đồ vật
 Dòng 3: chứa n giá trị sử dụng của n đồ vật
Output: Ghi ra file văn bản BALO1.OUT ghi tổng giá trị lớn nhất có thể cho các đồ vật vào trong túi
Ví dụ:
BALO1.INP BALO1.OUT
5 10 63
31736 124
20 19 30 24 15
Bài 14: Đổi tiền
Ở nước Omega người ta tiêu tiền xu. Có n loại tiền xu, loại thứ i có mệnh giá ai đồng. Số lượng mỗi
loại mệnh giá là không hạn chế. Một người khách đến Omega du lịch với số tiền M đồng. Ông ta muốn đổi số
tiền đó ra tiền xu Omega để tiêu cho tiện. Ông cũng muốn số đồng xu đổi ra là ít nhất cho đỡ nặng. Bạn hãy
giúp ông ta.
Yêu cầu: Tìm cách đổi tiền sao cho số lượng đồng xu đổi được là ít nhất?.
Input: Dòng đầu ghi 2 số M và N (0 ≤ M ≤ 10000; 1 ≤ N ≤ 100).
N dòng sau, dòng thứ i ghi mệnh giá của đồng tiền i (ai ≤ 250).
Output: Ghi tổng số đồng xu của cách đổi ít đồng xu nhất.
Ví dụ:
DOITIEN.INP DOITIEN.OUT
35 3 10
1
2
4

You might also like