Gồm nhiều bộ test, mỗi bộ test gồm một dòng chứa số nguyên N – có từ 2 đến 9 chữ số, không có dấu cách, có thể có các số 0 ở đầu.. Dữ liệu vào kết thúc bởi dòng chứa số 0.[r]
Trang 1NTSEQS2 - Dãy có tổng bằng S
Cho N số nguyên dương tạo thành dãy A={A1, A2, , AN} Tìm ra một dãy con của dãy A (không nhất thiết là các phần tử liên tiếp trong dãy) có tổng bằng S cho trước
Input
Dòng đầu tiên ghi hai số nguyên dương N và S (0<N≤200) và S (0<S≤40000)
Các dòng tiếp theo lần lượt ghi N số hạng của dãy A là các số A1, A2, , AN (0<Ai≤200)
Output
Nếu bài toán vô nghiệm thì in ra “NO”
Nếu bài toán có nghiệm thì in ra “YES”
Example
Input:
1 2 4 3 5
Output:
YES
QBSEQ2 - Dãy con dài nhất có tổng chia hết cho K
Cho một dãy gồm n ( n <= 1000) số nguyên dương A1, A2, , An và số nguyên dương k (k <= 50) Hãy tìm dãy con gồm nhiều phần tử nhất của dãy đã cho sao cho tổng các phần tử của dãy con này chia hết cho k
Input
Dòng đầu tiên chứa hai số n, k ghi cách nhau bởi ít nhất 1 dấu trống
Các dòng tiếp theo chứa các số A1, A2, , An được ghi theo đúng thứ tự cách nhau ít nhất một dấu trống hoặc xuống dòng
Output
Gồm 1 dòng duy nhất ghi số lượng phần tử của dãy con dài nhất thoả mãn
Example
Input:
11 15
Output:
9
Submit solution!
BCPALIN2 - Chuỗi đối xứng
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 một 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
Input
Gồm một dòng duy nhất chứa chuỗi s (có độ dài không quá 2000 kí tự), chỉ gồm những chữ cái in thường
Output
Gồm một dòng duy nhất là độ dài xâu con đối xứng dài nhất của xâu s
Trang 2Input:
lmevxeyzl
Output:
5
BCATM3 - ATM 3
Máy ATM tại cổng trường Học viện Công nghệ Bưu chính viễn thông hiện chứa tiền có 9 mệnh giá: 500, 200, 100, 50, 20, 10, 5, 2, 1 (đơn vị Nghìn đồng) Mỗi mệnh giá có vô số tờ tiền
Khi bạn rút một lượng tiền X (đơn vị Nghìn đồng), máy ATM sẽ tính toán để đưa ra các tờ tiền sao cho tổng tiền là X và số tờ tiền là ít nhất có thể Bạn hãy viết chương trình giúp ATM giải bài toán này nhé
Input
Dòng đầu tiên nhập N là số bộ test (0 < N <= 50 000)
N dòng sau, mỗi dòng tương ứng với 1 bộ test, bao gồm số tiền X (0 < X <= 10 000) – là lượng tiền bạn cần rút
Output
In kết quả trên N dòng, dòng thứ i là tổng số tờ tiền mà máy ATM sẽ đưa ra tương ứng với test thứ i
Example
Input:
2
560
732
Output:
3
5
BCTSP2 - Travelling Salesman Problem 2
Một người du lịch muốn tham quan n thành phố T1, …, Tn Xuất phát từ 1 thành phố nào đó, người du lịch muốn đi qua tất cả thành phố còn lại, mỗi thành phố đi qua đúng một lần rồi quay trở lại thành phố xuất phát
Gọi C[i][j] là chi phí đi từ thành phố Ti đến Tj Hãy tìm một hành trình thỏa mãn yêu cầu của bài toán sao cho chi phí là nhỏ nhất
Lưu ý: Bài TSP 2 nhằm mục đích luyện tập cho thuật toán tham lam, thuật toán này không đảm
bảo luôn tìm ra đáp án tối ưu, tuy nhiên với mục đích luyện tập test của TSP 2 được chọn để tham lam cũng tìm ra được đáp án tối ưu
Input
Dòng đầu tiên gồm số nguyên n (0 < n <= 1000) – là số thành phố
N dòng tiếp theo, dòng thứ i nhập n số nguyên C[i][j] (0 <= j < n, 0 < C[i][j] <= 10^9) – là chi phí đi
từ thành phố Ti đến Tj và ngược lại
Output
In ra chi phí nhỏ nhất có thể đạt được
Example
Trang 34
4
0 20 35 42
20 0 34 30
35 34 0 12
42 30 12 0
0 20 35 42
20 0 34 30
35 34 0 12
42 30 12
Output:
97
BCTSP - Travelling Salesman Problem Cho n thành phố đánh số từ 1 đến n và các tuyến đường giao thông hai chiều giữa chúng, mạng lưới giao thông này được cho bởi mảng C[1…n, 1…n] ở đây C[i][j] = C[j][i] là chi phí đi đoạn đường trực tiếp từ thành phố I đến thành phố j
Một người du lịch xuất phát từ thành phố 1, muốn đi thăm tất cả các thành phố còn lại mỗi thành phố đúng 1 lần và cuối cùng quay lại thành phố 1 Hãy chỉ ra chi phí ít nhất mà người đó phải bỏ ra
Input
Dòng đầu tiên là số nguyên n – số thành phố (n <= 15)
n dòng sau, mỗi dòng chứa n số nguyên thể hiện cho mảng 2 chiều C
Output
Chi phí mà người đó phải bỏ ra
Example
Input:
4
0 20 35 10
20 0 90 50
35 90 0 12
10 50 12 0
Output:
117
BCSTR - Xâu con chung dài nhất
Xâu ký tự X được gọi là xâu con của xâu ký tự Y nếu ta có thể xoá đi một số ký tự trong xâu Y để được xâu X
Cho biết hai xâu ký tự A và B, hãy tìm xâu ký tự C có độ dài lớn nhất và là con của cả A và B Xâu ký tự X được gọi là xâu con của xâu ký tự Y nếu ta có thể xoá đi một số ký tự trong xâu Y để được xâu X
Cho biết hai xâu ký tự A và B, hãy tìm xâu ký tự C có độ dài lớn nhất và là con của cả A và B
Input
Dòng 1: chứa xâu A
Dòng 2: chứa xâu B
Trang 4Chỉ gồm một dòng ghi độ dài xâu C tìm được
Example
Input:
abc1def2ghi3
abcdefghi123
Output:
10
Submit solution!
ALGOPRO9 - Số kì dị
Số kì dị được định nghĩa là số có tích các ước số của nó chia cho bội chung nhỏ nhất của các ước bằng 1
Giờ nhiệm vụ của bạn rất đơn giản, đó là đếm số lượng các số kì dị xuất hiện trong đoạn từ l đến r
Input
Dòng đầu chứa số bộ test T
T dòng tiếp theo, mỗi dòng chứa 2 số nguyên a và b (1 <= l <= r < 231, l – r <= 100000)
Output
Gồm T dòng, trên mỗi dòng gồm một số nguyên là số lượng các số kì dị có trong đoạn từ l đến r
Example
Input:
2
1 10
5 20
Output:
4
6
ALGOPRO8 - Đếm giày
Một ngày Gấu muốn đếm lại xem hiện tại mình đang có bao nhiêu đôi giày Sau khi kiểm tra, Gấu
có n chiếc giày màu đỏ và m chiếc giày màu xanh
Hiện tại Gấu đang theo mốt là mỗi ngày, gấu đeo một chiếc giày màu đỏ sang bên chân trái, chân phải thì đeo chiếc giày màu xanh Gấu ngại giặt giày nên sau mỗi ngày, Gấu không đeo lại giày mà hôm đó đã dùng Các bạn giúp Gấu xem là Gấu theo mốt này được bao nhiêu lâu Sau
đó, khi không thực hiện mốt này được nữa thì Gấu sẽ đeo 2 đôi giày cùng màu thì Gấu sẽ có giày đeo được bao nhiêu ngày tiếp theo
Input
Một dòng duy nhất chứa 2 số nguyên n, m (1 <= n, m <= 100) là số lượng giày màu đỏ và số lượng giày màu xanh
Output
Gồm 2 số nguyên lần lượt là số ngày Gấu đi mỗi bên một màu và số ngày tiếp theo Gấu đi 2 bên màu giống nhau
Example
Test 1:
Input:
3 1
Trang 51 1
Test 2:
Input:
2 3
Output:
2 0
Test 3:
Input:
7 3
Output:
3 2
ALGOPRO5 - Lucky number
Một số được cho là may mắn nếu nó chỉ gồm các chữ số 6 và 9
Cho số tự nhiên n ( 1 <= n <= 55), hãy tính xem có bao nhiêu số may mắn có tối đa n chữ số?
Input
Số n
Output
Đáp án của bài toán
Example
Test 1:
Input:
2
Output:
6
Test 2:
Input:
1
Trang 62
BCCOM - Số nén tối giản (Cơ bản)
Ta gọi phép nén một số nguyên là tính tổng các chữ số của nó Dễ thấy, sau một số phép nén, thì số còn lại chỉ có một chữ số và ko nén được nữa Ta gọi số đó là số nén tối giản
Ví dụ cho số 86 Sau phép nén thứ nhất ta đk: 8+6=14 Sau phép nén thứ 2: 1+4=5 => Số nén tối giản của 86 là 5
Cho một số nguyên hãy tìm số nén tối giản của nó
Input
Dòng đầu chứa số bộ test
Mỗi dòng tiếp theo chứa 1 bộ test gồm 1 số nguyên dương (<=10^9)
Mỗi dòng
Output
Mỗi dòng một số nén tối giản tương ứng
Example
Input:
3
43
111
57871
Output:
7
3
1
PTIT121C - Tìm kiếm file
Bạn đang phát triển một hệ điều hành, và bây giờ bạn cần viết một chương trình để liệt kê các file trong thư mục nào đó Nhưng những file này phải phù hợp với một định dạng cho trước Định dạng có thể chứa các kí tự đại diện (*), ví dụ như *.c Một kí tự đại diện có thể là một số kí tự hoặc không kí tự nào cả
Input
Trang 7Dòng đầu chứa chuỗi P – là định dạng cho trước, độ dài từ 1-100 kí tự, có thể gồm các kí tự từ ‘a’ tới ‘z’,’*’ hoặc ‘.’
Dòng hai chứ số nguyên N, 1 ≤ N ≤ 100, là số file trong thư mục Sau đó là N dòng chứa trên các file trong thư mục Mỗi dòng là một chuỗi (độ dài từ 1 tới 100) có thể gồm các kí tự từ ‘a’ tới ‘z’ hoặc ‘.’
Output
Mỗi dòng là tên một file phù hợp với định dạng cho trước, các file được liệt kê theo thứ tự trong input
Example
INPUTOUTPUT
*.*
4
main.c
a.out
readme
yacc
main.c
a.out
*a*a*a
4
aaa
aaaaa
aaaaax
abababa
aaa aaaaa abababa
PTIT122A - Loại bỏ dấu ngoặc thừa Cho một biểu thức đúng và thỏa mãn:
- Các biến trong biểu thức chỉ chứa các chữ cái viết hoa
- Các toán tử trong biểu thức là ‘+’ hoặc ‘-‘ (trong biểu thức không có phép toán nhân hay chia đâu nhé ;) )
Trang 8Nhiệm vụ của các bạn trong bài này sẽ là loại bỏ các dấu ngoặc thừa mà vẫn giữ nguyên ý nghĩa của biểu thức
Dữ liệu:
Dữ liệu vào gồm nhiều bộ test:
- Dòng đầu tiên chứa số biểu thức M (1<=M<=10)
- M dòng tiếp theo, mỗi dòng là một biểu thức đúng, có thể có các dấu cách tùy ý trong mỗi dòng Độ dài mỗi dòng (bao gồm cả dấu cách) không quá 255 kí tự
Kết quả:
Với mỗi biểu thức, in ra trên một dòng riêng biệt biểu thức cùng ý nghĩa với biểu thức đã cho và không có các dấu ngoặc thừa Chú ý: Thứ tự của các toán hạng trong biểu thức in ra và biểu thức đầu vào phải giống nhau Các dấu cách thừa cũng phải được loại bỏ
Example
Input:
3
(A-B + C) - (A+(B – C)) - (C-(D- E) )
((A)-( (B)))
A-(B+C)
Output:
A-B+C-(A+B-C)-(C-(D-E))
A-B
A-(B+C)
PTIT122C - Giai thừa 2
Tìm số lần xuất hiện của chữ số x trong số n! (n giai thừa)
Giới hạn:
- 1<=n<=365
- x là các chữ số từ 0 đến 9
Input
- Dòng đầu là số bộ test T (<=20)
- Sau đó là T dòng, mỗi dòng gồm 2 số nguyên cách nhau bởi dấu cách lần lượt là n và x
Output
- Mỗi bộ test in trên một dòng đáp án
Example
Trang 92
5 2
7 0
Output:
1
2
Submit solution!
PTIT122G - Số đối xứng 2
Cho một số nguyên N (có thể chứa các số 0 ở đầu) Hỏi phải cộng thêm tối thiểu bao nhiêu để N trở thành số đối xứng (số cộng thêm là một số nguyên không âm - khi cộng tính cả các số 0 ở đầu nhé)
Dữ liệu:
Gồm nhiều bộ test, mỗi bộ test gồm một dòng chứa số nguyên N – có từ 2 đến 9 chữ số, không
có dấu cách, có thể có các số 0 ở đầu
Dữ liệu vào kết thúc bởi dòng chứa số 0
Kết quả:
Mỗi bộ test in trên một dòng chứa kết quả của bộ test
Example
Input:
100000
100001
000121
00456
0
Output:
1
0
979
44
Submit solution!
PTIT124G - Trao bai
Cho một tập bài gồm n lá bài đánh số từ 1 tới n theo thứ tự từ trên xuống dưới Đầu tiên người ta viết vào mỗi lá bài một số nguyên là số thứ tự lá bài đó Xét phép tráo S(i,j): Rút ra lá bài ghi số nguyên i và chèn lên trên lá bài mang số nguyên j (i≠j)
Trang 10Ví dụ: Với n=9:
Cho x phép tráo bài, hãy xác định trạng thái của tập bài sau x phép tráo
Input
- Dòng 1 chứa hai số nguyên dương n,x ≤ 105
- x dòng tiếp theo, dòng thứ k chứa hai số nguyên dương ik , jk cho biết phép tráo thứ k là S(ik , jk) (ik ≠ jk, 1 ≤ ik , jk ≤n)
Output
Một dòng gồm n số nguyên là các số ghi trên lá bài theo thứ tự từ trên xuống dưới
Example
Input:
9 3
8 2
4 7
1 9
Output:
8 2 3 5 6 4 7 1 9
PTIT125I - Xóa chữ số
Cho một số có N chữ số Bạn hãy xóa đi K chữ số để được số còn lại sau khi xóa là lớn nhất có thể
Input
- Dòng 1: số N và K (1<=K<N<=500 000)
- Dòng 2: Số có N chữ số, bắt đầu bằng số khác 0
Output
- Số lớn nhất có thể sau khi xóa K chữ số
Example
Input:
4 2
Trang 11Output:
94
Submit solution!
PTIT126E - Bỏ phiếu
Có một số người tham gia trong một cuộc bầu cử, lá phiếu của mỗi người được ghi lại với kí hiệu như sau:
- Y nghĩa là đồng ý
- N nghĩa là không đồng ý
- P nghĩa là có mặt, nhưng không bỏ phiếu
- A nghĩa là vắng mặt
Nhiệm vụ của bạn là từ danh sách trạng thái này, xác định kết quả của cuộc bầu cử : Nếu ít nhất một nửa số người vắng mặt, in ra "need quorum" Ngược lại, cuộc bầu cử được tính Nếu số người đồng ý lớn hơn số người không đồng ý, in ra "yes" Nếu số người không đồng ý lớn hơn số người đồng ý, in ra ‘’no’’ Nếu số người đồng ý bằng số người không đồng ý, in ra ‘tie’
Input
- Gồm nhiều bộ test, mỗi bộ test là 1 dòng chứa danh sách trạng thái của một số người tham gia cuộc bầu cử (2 <= Số người <= 70)
- Bộ test kết thúc bởi dòng chứa dấu ‘#’
Output
- Mỗi bộ test in trên 1 dòng chứa kết quả của cuộc bầu cử
Example
Input:
YNNAPYYNY YAYAYAYA PYPPNNYA YNNAA NYAAA #
Output:
yes
tie no need quorum
Trang 12PTIT127A - Tổ chức kì thi
Một cuộc thi gồm có M nữ và N nam đăng kí Ban tổ chức cần xếp đội cho các thí sinh theo quy tắc như sau: Mỗi đội gồm 2 nữ và 1 nam Tuy nhiên, ban tổ chức cần K người để tham gia vào công tác tổ chức (chọn từ số người đăng kí), K người này sẽ không thể chọn đội để thi Ví dụ: Nếu M=6, N=3, K=2 Ban tổ chức có thể lấy 1 nam và 1 nữ để tham gia tổ chức, còn lại 5 nữ và 2 nam Ban tổ chức có thể tạo ra 2 đội
Bạn hãy giúp ban tổ chức tính xem có thể chọn tối đa bao nhiêu đội
Input
Một dòng chứa 3 số nguyên M,N,K (0≤M,N≤100), (0≤K≤M+N)
Output
Số nguyên duy nhất là số đội có thể lập được
Example
Input:
6 3 2
Output:
2
Input:
2 1 1
Output:
0
Input:
6 10 3
Output:
3
Submit solution!
PTIT127G - Tách số
Cho đoạn văn có N dòng, mỗi dòng chỉ chứa các chữ số và chữ cái in thuờng trong bảng chữ cái tiếng Anh Nhiệm vụ của bạn là tìm tất cả các số trong đoạn văn và in chúng ra thành một dãy số không giảm Để cho đơn giản, các số có các chữ số 0 bắt đầu sẽ xóa bỏ các chữ số 0 ở đầu
Trang 13Các số được xác định duy nhất bằng cách quét qua đoạn văn và luôn lấy số lượng các chữ số lớn nhất có thể Ví dụ: Các số 01a2b3456cde478 là 1, 2, 478, 3456
Input
Dòng 1 chứa số nguyên N (1 ≤ N ≤ 100), là số dòng của đoạn văn
N dòng tiếp theo, mỗi dòng chứa một chuỗi các chữ số và chữ cái in thuờng trong tiếng Anh Mỗi dòng tối đa 100 kí tự
Output
Gồm M dòng (M là số các số tìm được trong đoạn văn) Mỗi dòng chứa 1 số lấy từ đoạn văn Các số được sắp xếp theo thứ tự không giảm Chú ý: M luôn không quá 500
Example
Input:
2
lo3za4
01
Output:
1
3
4
Input:
4
43silos0
zita002
le2sim
231233
Output:
0
2
2
43
231233
Input:
4
01bond
02james007
03bond
04austinpowers000
Trang 140
1
2
3
4
7
PTIT127J - Biến đổi chuỗi
Cho chuỗi gồm N chữ cái, các chữ cái là ‘A’ hoặc ‘B’ Có hai loại biến đổi:
- Đổi 1 chữ cái bất kì (A -> B hoặc B->A)
- Đổi K chữ cái đầu tiên của chuỗi (A->B và B->A)
Hãy tìm số phép biến đổi ít nhất để biến chuỗi đã cho thành chuỗi chỉ gồm các chữ cái ‘A’
Input
- Dòng 1: số N (1 ≤ N ≤ 1 000 000)
- Dòng 2: chuỗi gồm N chữ cái, các chữ cái là ‘A’ hoặc ‘B’
Output
Số phép biến đổi tối thiểu
Example
Input:
4
ABBA
Output:
2
Input:
5
BBABB
Output:
2
Input:
12
AAABBBAAABBB
Output:
4
Submit solution!
pb8
Trang 15REPSTR - Replacing Digits
Cho số nguyên dương a có N chữ số và số dãy s có M chữ số Chữ số ở vị trí j (1<=j<=M) của dãy s có thể chọn bất kì vị trí i (1<=i<=N) trong số a và thay thế bằng sj Mỗi chữ số của dãy s chỉ được thay thế không quá một lần
Nhiệm vụ của bạn là hãy tìm cách thay sao cho số a đạt giá trị lớn nhất Bạn có thể không cần sử dụng tất cả các chữ số trong s
Input
Dòng đầu chứa số nguyên dương a có độ dài N (không bắt đầu bằng chữ số 0)
Dòng 2 chứa dãy s có độ dài M
(1≤N,M≤105)
Output
Số a lớn nhất có thể thay thế được
Example
Input:
1024
010
Output:
1124
Input:
987
1234567
Output:
987
REMOVBIT - Xóa bit
Cho số a viết ở hệ cơ số 2 Nhiệm vụ của bạn là phải xóa một chữ số để số còn lại xóa khi xóa là lớn nhất !!!
Input
Một dòng chứa số a viết ở hệ nhị phân
Output
Số lớn nhất sau khi xóa 1 chữ số từ a
Trang 16Input:
101
Output:
11
YOUNGCLA - Birthdates
Viết chương trình tìm người trẻ nhất và già nhất trong lớp
Input
Dòng 1 chứa số n (1<=n<=100), số người trong lớp
N dòng sau, mỗi dòng là thông tin 1 người có dạng:
personName dd mm yyyy
Trong đó: personName là tên không quá 15 chữ cái, dd,mm,yyyy lần lượt là ngày, tháng, và năm sinh
Output
Dòng 1: tên người trẻ nhất
Dòng 2: tên người già nhất
Example
Input:
5
Garfield 20 9 1990
5
Mickey 1 10 1991
Alice 30 12 1990
Tom 15 8 1993
Jerry 18 9 1990
Garfield 20 9 1990
Output:
Tom
Jerry