Dữ liệu vào: Cho trong file văn bản TACHTU.INP, có cấu trúc như sau: - Dòng 1: Ghi xâu ký tự St.. Dữ liệu ra: Ghi ra file văn bản TACHTU.OUT, theo cấu trúc như sau: - Dòng 1: Ghi một xâu
Trang 1Së Gi¸o dôc-§µo t¹o kú thi CHäN häc sinh giái líp 12
§Ò chÝnh thøc Thời gian 180 phút, không kể thời gian giao đề
ĐỀ RA
Sử dụng ngôn ngữ lập trình Turbo Pascal để lập trình giải các bài toán sau:
Người ta định nghĩa: Từ là một nhóm ký tự liên tiếp, không chứa dấu cách Cho một xâu St có N từ Xâu St được tạo thành từ M ký tự lấy từ tập
’A’ ’Z’, ’a’ ’z’ và dấu cách, (1 < N < 10; N < M < 255)
Yêu cầu: Tách từ cuối cùng của xâu St.
Dữ liệu vào: Cho trong file văn bản TACHTU.INP, có cấu trúc như sau:
- Dòng 1: Ghi xâu ký tự St.
Dữ liệu ra: Ghi ra file văn bản TACHTU.OUT, theo cấu trúc như sau:
- Dòng 1: Ghi một xâu ký tự, là từ cuối cùng của xâu St.
Ví dụ:
TACHTU.INP TACHTU.OUT
Le Tuan Phuc Phuc
Câu 2: (3,5 điểm) Tìm giá trị lớn thứ hai trong dãy MAX2.PAS
Cho dãy số gồm N phần tử có giá trị nguyên dương a1, a2, , aN.
Yêu cầu: Hãy tìm giá trị lớn thứ hai trong dãy hoặc thông báo không tồn tại giá trị
lớn thứ hai
Dữ liệu vào: Cho trong file văn bản MAX2.INP, có cấu trúc như sau:
- Dòng 1: Ghi số nguyên dương N, là số lượng phần tử của dãy số (1 ≤N≤ 32000).
- Dòng 2: Ghi N số nguyên dương a1, a2, , aN, là giá trị của các phần tử trong dãy, các số được ghi cách nhau ít nhất một dấu cách, (0 < ai≤ 32000; 1 ≤ i ≤ N)
Dữ liệu ra: Ghi ra file văn bản MAX2.OUT, theo cấu trúc như sau:
- Dòng 1: Ghi giá trị lớn thứ hai tìm được Nếu không tồn tại giá trị lớn thứ hai thì
ghi số -1
Ví dụ:
8
2 5 2 4 3 8 5 2
5
3
5 5 5
-1
Giới hạn thời gian thực hiện chương trình không quá 0,5 giây đối với mọi trường hợp của dữ liệu vào.
1/2
Trang 2Câu 3: (3,5 điểm) Du lịch vòng quanh thế giới DULICH.PAS
Trên một tuyến đường du lịch từ địa điểm X đến địa điểm Y có N khách sạn được đánh số theo thứ tự từ 1 đến N Khách sạn thứ i cách địa điểm xuất phát X là
ai (km), (i = 1, 2, , N; a1 < a2 < < aN), khách sạn thứ N nằm tại địa điểm Y, là địa điểm cuối cùng mà xe bắt buộc phải dừng
Để đảm bảo sức khoẻ cho hành khách, theo tính toán của chuyên gia, sau khi
đã chạy được P (km) xe phải dừng lại cho hành khách nghỉ ở một khách sạn Vì thế, nếu xe dừng lại cho hành khách nghỉ ở một khách sạn sau khi đã đi được Q (km) thì lái xe phải trả lại kinh phí cho hành khách là (Q-P)2
Yêu cầu: Hãy xác định xem trên tuyến đường từ điểm xuất phát X đến khách sạn
thứ N xe cần dừng lại nghỉ ở những khách sạn nào để tổng kinh phí mà lái xe phải trả lại cho hành khách là nhỏ nhất
Dữ liệu vào: Cho trong file văn bản DULICH.INP, có cấu trúc như sau:
- Dòng 1: Ghi số nguyên dương N, là số lượng khách sạn trên tuyến đường,
(0 < N ≤ 10000)
- Dòng 2: Ghi số nguyên dương P, là số km mà xe nên dừng lại cho hành khách
nghỉ để đảm bảo sức khỏe (0 < P ≤ 500)
- Dòng 3: Ghi N số nguyên dương a1, a2, , aN, là khoảng cách từ khách sạn thứ i đến điểm xuất phát X Các số được ghi cách nhau ít nhất một dấu cách
(0 < ai ≤ 2000000; i = 1, 2, , N)
Dữ liệu ra: Ghi ra file văn bản DULICH.OUT, theo cấu trúc như sau:
- Dòng 1: Ghi số Z là tổng kinh phí mà lái xe phải trả lại cho hành khách Biết
rằng: 0 < Z < 2×109
- Dòng 2: Ghi số K là tổng số khách sạn mà lái xe cần dừng lại cho hành khách
nghỉ
- Dòng 3: Ghi chỉ số của K khách sạn mà xe phải dừng lại cho hành khách nghỉ
trên cả tuyến đường, theo thứ tự tăng dần của chỉ số (kể cả khách sạn thứ N) Các
số được ghi cách nhau ít nhất một dấu cách
Ví dụ:
DULICH.INP DULICH.OUT
4 300
250 310 550 590
500 2
2 4
Giới hạn thời gian thực hiện chương trình không quá 0,5 giây đối với mọi trường hợp của dữ liệu vào.
==HẾT==
2/2