Ví dụ FINDNAME.INP FINDNAME.OUT omxymgemn oxygen camlcimumm calcium brommimnem bromine hymdromcamrbomn hydrocarbon Chú ý: 50% số điểm ứng với các test trong đó độ dài xâu ? không quá 5
Trang 1Trang 1
Trường ĐHSP Hà Nội
Môn: Tin học Ngày thi thứ nhất (23/3/2015) Thời gian 180 phút
TỔNG QUAN VỀ ĐỀ BÀI
STT Tên file bài làm Tên file dữ liệu Tên file kết quả Giới hạn mỗi test Điểm
1 FINDNAME.* FINDNAME.INP FINDNAME.OUT 1 giây/1 GB 100
3 MAXRECT.* MAXRECT.INP MAXRECT.OUT 1 giây/1 GB 100
4 NOPASS.* NOPASS.INP NOPASS.OUT 1 giây/1 GB 100
Phần mở rộng * là PAS, C hay CPP tùy theo ngôn ngữ và môi trường lập trình (Pascal/FPC, C,
C++/CodeBlocks)
Đề bài có 3 trang
Hãy lập chương trình giải các bài toán sau đây
Bài 1 TÌM TÊN
Học trò giáo sư X tỏ ra rất kém trong môn hóa học Để cải thiện tình hình học tập môn này, việc đầu tiên
là phải nhớ được những tên khoa học của các nguyên tố và hợp chất
Với một tên cho bởi xâu ký tự 𝑆 chỉ gồm các chữ cái thường tiếng Anh Giáo sư X viết vào sau mỗi nguyên
âm (“a”, “e”, “i”, “o”, “u”, “y”) một chữ cái “m” để được xâu 𝑆′ Các sinh viên được cho xâu 𝑆′ và yêu cầu
tìm xâu 𝑆
Yêu cầu: Hãy giúp các bạn sinh viên tìm tên 𝑆 ban đầu
Dữ liệu: Vào từ file văn bản FINDNAME.INP gồm 1 dòng chứa xâu ký tự 𝑆′ gồm không quá 106 chữ cái
thường
Kết quả: Ghi ra file văn bản FINDNAME.OUT xâu ký tự 𝑆 tìm được
Ví dụ
FINDNAME.INP FINDNAME.OUT omxymgemn oxygen camlcimumm calcium brommimnem bromine hymdromcamrbomn hydrocarbon
Chú ý: 50% số điểm ứng với các test trong đó độ dài xâu 𝑆 không quá 5000
Bài 2 CƯA MÁY
Một hàng cây gồm 𝑛 cây đánh số từ 1 tới 𝑛, cây thứ 𝑖 có chiều cao ℎ𝑖 Người ta muốn khai thác gỗ từ
những cây này bằng một máy cưa Máy cưa vận hành như sau: Trước hết phải thiết lập một độ cao Δ cho
lưỡi cưa, sau đó di chuyển máy cưa qua hàng cây Mỗi khi máy cưa đi qua cây độ cao ℎ > Δ thì cây đó bị
cưa còn lại chiều cao Δ và người ta lấy được ℎ − Δ mét gỗ từ cây này Dĩ nhiên những cây có độ cao ≤ Δ
không bị cưa và người ta không lấy được gỗ từ những cây đó
Trang 2Trang 2
Yêu cầu: Cho dãy số nguyên dương 𝑚1, 𝑚2, … , , 𝑚𝑘 Với mỗi giá trị 𝑚𝑗, tìm số nguyên Δ𝑗 lớn nhất sao cho nếu đặt độ cao của lưỡi cưa là Δ𝑗 thì tổng số mét gỗ khai thác được không ít hơn 𝑚𝑗 (𝑗 = 1,2, … , 𝑘)
Dữ liệu: Vào từ file văn bản SAW.INP
Dòng 1 chứa hai số nguyên dương 𝑛, 𝑘 ≤ 105
Dòng 2 chứa 𝑛 số nguyên dương ℎ1, ℎ2, … , ℎ𝑛 (∀𝑖: ℎ𝑖 ≤ 106)
Dòng 3 chứa 𝑘 số nguyên dương 𝑚1, 𝑚2, … , 𝑚𝑘 (∀𝑗: 𝑚𝑗≤ ∑𝑛 ℎ𝑖
𝑖=1 )
Kết quả: Ghi ra file văn bản SAW.OUT một dòng 𝑘 số nguyên Δ1, Δ2, … , Δ𝑘 tìm được
Các số trên một dòng của input/output files được/phải ghi cách nhau ít nhất một dấu cách
Ví dụ
SAW.INP SAW.OUT
4 2
20 15 10 17
7 4
15 16
Giải thích:
Nếu đặt độ cao lưỡi cưa là 15, ta khai thác được 7m gỗ: 5m từ cây 1 và 2m từ cây 4
Nếu đặt độ cao lưỡi cưa là 16, ta khai thác được 5m gỗ: 4m từ cây 1 và 1m từ cây 4
Chú ý:
25 % số điểm ứng với các test có 𝑛, 𝑘 ≤ 100
50% số điểm ứng với các testt có 𝑛, 𝑘 ≤ 1000
Bài 3 HÌNH CHỮ NHẬT LỚN NHẤT
Cho một bảng kích thước 𝑚 × 𝑛 được chia thành lưới ô vuông đơn vị Các hàng của bảng được đánh số
từ 1 tới 𝑚 từ trên xuống và các cột của bảng được đánh số từ 1 tới 𝑛 từ trái qua phải Ô nằm trên hàng 𝑖
và cột 𝑗 của bảng gọi là ô (𝑖, 𝑗) Mỗi ô được tô bởi một trong hai màu: Đen (B) hoặc Trắng (W)
Hãy tìm một hình chữ nhật có diện tích lớn nhất thỏa mãn các điều kiện sau
Cạnh hình chữ nhật song song với cạnh bảng
Hình chữ nhật chiếm trọn một số ô của bảng và chỉ gồm các ô trắng
Dữ liệu: Vào từ file văn bản MAXRECT.INP
Dòng 1 chứa hai số nguyên dương 𝑚, 𝑛 ≤ 1000 cách nhau bởi dấu cách
𝑚 dòng tiếp theo, dòng thứ 𝑖 chứa 𝑛 ký tự liền nhau, ký tự thứ 𝑗 là “B” nếu ô (𝑖, 𝑗) là ô đen, là “W” nếu ô (𝑖, 𝑗) là ô trắng
Kết quả: Ghi ra file văn bản MAXRECT.OUT một số nguyên duy nhất là diện tích (số ô nằm trong) hình
chữ nhật tìm được (ghi số 0 nếu bảng đã cho không có ô trắng)
Ví dụ
Trang 3Trang 3
MAXRECT.INP MAXRECT.OUT
4 6 BBWWBB BWWWWB BWWWWB BBWBBB
8
Chú ý:
25 % số điểm ứng với các test có 𝑚, 𝑛 < 50
50% số điểm ứng với các test có 𝑚, 𝑛 ≤ 300
Bài 4 VI PHẠM GIAO THÔNG
Trong một con đường hầm hẹp dành cho xe cơ giới, người ta chỉ thiết kế một làn xe đi theo một chiều
Mặc dù có biến báo “Cấm vượt” trong suốt chiều dài con đường hầm, tuy nhiên vẫn có rất nhiều lái xe vi phạm
Việc triển khai cảnh sát giao thông và camera suốt dọc đường hầm tỏ ra rất tốn kém Người ta chỉ đặt hai camera ở lối vào và lối ra của đường hầm Camera đầu đường ghi lại biển số các xe vào hầm và camera
cuối đường ghi lại biển số các xe ra khỏi hầm Giả thiết là các xe đều chạy với vận tốc không đổi và hai
camera ghi lại biển số các xe chính xác theo đúng thứ tự vào/ra hầm
Giáo sư X được yêu cầu triển khai một phần mềm phát hiện xe phạm luật cấm vượt Nhiệm vụ đặt ra là phải căn cứ vào dãy biển số xe mà hai camera ghi nhận được để phát hiện những xe có hiện tượng vượt
xe khác Bạn hãy giúp giáo sư X thực hiện phần mềm
Dữ liệu: Vào từ file văn bản NOPASS.INP
Dòng 1 chứa số nguyên dương 𝑛 ≤ 106 là số xe mà hai camera ghi được
Dòng 2 chứa 𝑛 số 𝑎1, 𝑎2, … , 𝑎𝑛 lần lượt là biển số các xe theo thứ tự vào hầm Mỗi biển số là số nguyên dương không quá 106
Dòng 3 chứa 𝑛 số 𝑏1, 𝑏2, … 𝑏𝑛 lần lượt là biển số các xe theo thứ tự ra khỏi hầm Xe nào vào hầm đều
ra khỏi hầm với cùng biển số lúc vào, không có hai xe khác nhau mang cùng biển số
Các số trên một dòng của input file được ghi cách nhau bởi dấu cách
Kết quả: Ghi ra file văn bản NOPASS.OUT một số nguyên duy nhất là số xe vi phạm luật cấm vượt
Ví dụ
NOPASS.INP NOPASS.OUT
5
33 11 22 44 55
22 11 33 55 44
3
6
6 5 4 3 2 1
1 2 3 4 5 6
5
Giải thích ví dụ 1: Xe mang biển 11, 22 và 55 có vượt xe khác
Chú ý: 50% số điểm ứng với các test có 𝑛 ≤ 5000
HẾT