TỈNH ĐOÀN BÌNH ĐỊNH HỘI THI TIN HỌC TRẺ KHÔNG CHUYÊNLẦN THỨ VI – NĂM 2000 Bảng C: TRUNG HỌC PHỔ THÔNG Thời gian làm bài: 180 phút Bài 1: Chuyển mã văn bản Để chuyển mã một văn bản từ bộ
Trang 1TỈNH ĐOÀN BÌNH ĐỊNH HỘI THI TIN HỌC TRẺ KHÔNG CHUYÊN
LẦN THỨ VI – NĂM 2000 Bảng C: TRUNG HỌC PHỔ THÔNG
Thời gian làm bài: 180 phút
Bài 1: Chuyển mã văn bản
Để chuyển mã một văn bản từ bộ mã nguồn sang bộ mã đích người ta thường dùng một tập tin văn bản (text) – gọi là bảng mã chuyển đổi – chứa mã của các kí tự cần chuyển ởi bộ mã nguồn
và bộ mã đích bao gồm N dòng (N≤256), mỗi dòng có hai số nguyên của cùng một kí tự trong bảng mã nguồn và bảng mã đích cần chuyển, giữa hai số cách nhau ít nhất một dấu cách
Hãy lập chương trình chuyển mã văn bản theo yêu cầu: những kí tự trong văn bản càn chuyển
mã có mã nằm trong bảng mã chuyển đổi được đổi thành kí tự có mã tương ứng của bảng mã đích, các kí tự khác không thay đổi
Dữ liệu vào:
– Tên tập tin bảng mã chuyển đổi nhập vào từ bàn phím
– Tập tin văn bản nguồn cần chuyển mã có tên BAI1.INP.
Dữ liệu ra:
– Tập tin văn bản đích là kết quả chuyển mã có tên BAI1.OUT.
Bài 2: Các điểm thẳng hàng
Trong mặt phẳng cho N (N≤1000) điểm có toạ độ ( ; ) , 1 x y i i ≤ i ≤ N, là các số nguyên Hãy lập chương trình tìm trong N điểm trên một tập nhiều nhất các điểm cùng nằm trên một đường thẳng
Dữ liệu vào: Được cho trong tập tin BAI2.INP là tập tin text, có cấu trúc:
+ Dòng đầu ghi số N
+ N dòng tiếp theo, mỗi dòng ghi 2 số nguyên x y i, cách nhau ít nhất một dấu cách.i
Dữ liệu ra: Ghi vào tập tin BAI2.OUT là tập tin text, có cấu trúc:
+ Dòng đầu là số điểm thẳng hàng nhiều nhất tìm được
+ Các dòng tiếp theo là toạ độ các điểm thẳng hàng tìm được, giữa hai số cách nhau ít nhất một dấu cách
Ví dụ:
3
0 0
10 0
15 10
2
0 0
10 0
6
15 5
0 0
3 7
10 5 –4 –2
100 50
4
0 0
10 5 –4 –2
100 50
Bài 3: Các nhà khoa học
Trong một cuộc hội thảo khoa học quốc tế có N nhà khoa học tham gia Mỗi nhà khoa học có thể
sử dụng được ngôn ngữ của một số nước Ban tổ chức dự kiến bố trí các nhà khoa học thành từng nhóm 3 người sao cho họ có thể trao đổi được với nhau Biết rằng để 3 người có thể trao đổi được với nhau phải có ít nhất một người biết chung một ngôn ngữ với hai người còn lại (người làm nhiệm vụ phiên dịch)
Hãy lập chương trình giúp ban tổ chức sắp xếp các nhà khoa học thành từng nhóm mà trong mỗi nhóm đều có thể trao đổi được với nhau, nếu tìm được một phương án sắp xếp sao cho số nhóm
có thể trao đổi trực tiếp với nhau là nhiều nhất (một nhóm có thể trao đổi trực tiếp nếu cả ba người có chung một ngôn ngữ nào đó)
Dữ liệu vào: Được cho trong tập tin BAI3.INP, có cấu trúc:
+ Dòng đầu ghi số N (là bội số của 3)
+ N dòng tiếp theo, mỗi dòng là danh sách tên các ngôn ngữ của từng người sử dụng được Tên mỗi ngôn ngữ là một xâu kí tự không quá 10 kí tự, không có dấu cách, giữa tên 2 ngôn ngữ cách nhau đúng một dấu cách
Trang 2Dữ liệu ra: Ghi vào tập tin BAI3.OUT, có cấu trúc:
+ Nếu không thể sắp xếp được theo yêu cầu thì in ra thônng báo "Khong the sap duoc!" + Nếu sắp được thì nội dung của tập tin gồm N/3 dòng, mỗi dòng gồm 3 số cách nhau ít nhất một dấu cách, là số thứ tự của 3 nhà khoa học trong cùng một nhóm
+ Dòng cuối ghi số nhóm có thể trao đổi trực tiếp với nhau theo cách sắp xếp tìm được ở trên
Ví dụ:
6
English French
Vietnamese English
French Vietnamese
Italian
English
French
Khong the sap duoc! 9
English French Vietnamese German English
Italian French Vietnamese English French Spanish English
English French Vietnamese Italian Spanish
1 4 8
2 5 6
3 7 9 2
Lưu ý: Các ví dụ trên chỉ đưa ra một phương án, thí sinh có thể tìm phương án khác nhưng vẫn thoả mãn yêu cầu của đề bài.
Yêu cầu chung:
– Các tập tin bài làm được lưu tương ứng với các tên BAI1.PAS, BAI2.PAS, BAI3.PAS.
– Thí sinh không cần kiểm tra tính đúng đắn của dữ liệu vào Dữ liệu ra phải đúng cấu trúc qui định
==========================