- .LCN với chương trình LOGO, PAS với chương trình PASCAL
IOÍ96 Ngày thi thứ nhấ t
Bài toán 1: Sắp xếp chuỗi theo ba tiêu thức
Sắp xếp là một trong những công việc được thực hiện nhiều nhất với sự giúp đỡ của máy tính. Xét một bài tốn sắp xếp đặc biệt trong đó các thơng tin cần sắp xếp theo ba tiêu thức khác nhaụ Ví dụ, khi ta sắp xếp những người được trao huy chương trong một cuộc thi theo màu huy chương: những người được trao huy chương vàng đứng trước, sau đó đến những người được trao huy chương bạc và cuối cùng là những người được huy chương đồng.
Trong bài toán này, các tiêu thức sắp xếp là các số nguyên 1, 2 và 3. Trật tự sắp xếp là tăng dần. Sắp xếp được hoàn thành sau một chuỗi sự thay đổi vị trí.
Cho trước các tiêu thức sắp xếp, hãy viết chương trình xác định số lần hốn đổi vị trí ít nhất cần thiết để sắp xếp được một chuỗi các sự kiện (Yêu cầu A). Xây dựng trật tự hốn đổi vị trí để được chuỗi kết quả (Yêu cầu B).
Dòng đầu tiên của file INPUT.TXT chứa số bản ghi N cần sắp xếp (1<=N<=1000). Mỗi dòng trong số N dòng tiếp theo chứa các tiêu thức sắp xếp.
Output
Dòng đầu tiên của file OUTPUT.TXT báo cáo số lần hoán đổi vị trí ít nhất L để được
chuỗi kết quả (Yêu cầu A). L dòng tiếp theo chỉ thứ tự các hốn đổị Mỗi dịng chứa một hoạt động hốn đổi được mơ tả bằng hai số p và q (vị trí của hai bản ghi được hốn đổi) (Yêu cầu B). Các vị trí được đánh số từ 1 đến N.
Ví dụ:
Input và Output
File input và output tương ứng.
INPUT.TXT OUTPUT.TXT 9 4 2 1 3 2 4 7 1 9 2 3 5 9 3 3 2 3 1
Bài toán 2: Tiền tố dài nhất
Cấu trúc một số sinh vật được thể hiện qua các thành phần cấu tạo nên chúng. Các thành phần đó được ký hiệu bằng các ký tự viết hoạ Các nhà sinh vật học muốn phân ly chuỗi thành phần dài thành các chuỗi ngắn hơn. Các chuỗi ngắn hơn này được gọi là chuỗi gốc. Ta có thể phát biểu rằng một chuỗi S được tạo thành từ các chuỗi gốc P nếu trong thành phần chuỗi P có nhiều chuỗi gốc p1,..., pn. Các chuỗi gốc p1,...,pn được kết nối theo thứ tự khơng có khoảng trống. Một chuỗi gốc có thể xuất hiện nhiều lần trong chuỗi và không nhất thiết tất cả các chuỗi gốc phải cùng xuất hiện. Ví dụ chuỗi ABABACABAAB có thể được tạo thành từ các chuỗi gốc dưới:
K ký tự đầu tiên trong chuỗi S được gọi là tiền tố với chiều dài K của chuỗi S. Hãy viết chương trình nhận các chuỗi gốc P và thứ tự các thành phần của chuỗi T, từ đó, xác định chiều dài tối đa của tiền tố dài nhất được tạo thành từ các chuỗi gốc trong chuỗi gốc P.
Input
Input gồm hai filẹ File INPUT.TXT cho trước các chuỗi gốc P, còn file DATẠTXT
chứa thứ tự thành phần T để kiểm trạ Dòng đầu của file INPUT.TXT chứa N là số các
chuỗi gốc P (1<=N<=100). Mỗi chuỗi gốc được xác định trên hai dòng liền nhaụ Dòng trước chứa chiều dài L của chuỗi gốc (1<=L<=20). Dòng sau chứa chuỗi gốc gồm một chuỗi L ký tự viết hoa (từ 'Á đến 'Z'). Có N chuỗi gốc khác nhaụ
Mỗi dòng trong file DATẠTXT chứa một ký tự viết hoa ở đầu dòng. File này kết thúc
bằng một dòng chứa dấu ('.').
Chiều dài chuỗi lớn hơn 1 và nhỏ hơn hoặc bằng 500.000.
Output
Dòng đầu tiên của file OUTPUT.TXT chứa chiều dài tối đa của tiền tố thứ tự thành phần T dài nhất có thể được tạo thành từ các chuỗi gốc P.
Ví du:
Input và Output
Bài tốn 3: Ơ vng thần bí
Hình 1: Trạng thái ban đầu
Sau sự thành cơng của trị chơi Rubik, ơng Rubik đã phát minh ra phiên bản trong mặt phẳng của trò chơi này với tên gọi lưới ơ vng thần bí. Đây là một lưới gồm 8 ô vuông bằng nhau (hình 1).
Trong bài tốn này, ta xét trị chơi với mỗi ơ vng có một màu khác nhaụ Tám màu sắc được biểu diễn bằng tám số nguyên dương (hình 1). Trạng thái ban đầu của lưới ô vuông được biểu diễn bằng một chuỗi màu bắt đầu từ màu của ơ phía trên bên trái theo hướng kim đồng hồ. Ví dụ, trạng thái trong hình 1 biểu diễn bằng chuỗi (1,2,3,4,5,6,7,8). Đây là trạng thái ban đầụ
Có ba cách biến đổi cơ bản được biểu diễn bằng các ký tự 'Á, 'B' và 'C': 'Á: đổi chỗ giữa hàng trên cùng và hàng dưới cùng,
'B': quay hình chữ nhật sang phải một vịng,
'C': quay bốn ơ vng ở giữa một vịng theo chiều kim đồng hồ. Tất cả các trạng thái đều được tạo thành khi thực hiện ba thao tác trên.
Kết quả của các thao tác cơ bản được thể hiện trên hình 2. Các số bên ngồi lưới ơ vng chỉ vị trí các ơ vng. Nếu ơ vng ở vị trí p chứa số i nghĩa là sau khi thực hiện thao tác, ơ vng có vị trí ban đầu là i sẽ chuyển sang vị trí p.
Hình 2: Các thao tác cơ bản
Hãy viết chương trình tìm chuỗi thao tác cơ bản để chuyển từ trạng thái ban đầu trong hình 1 sang trạng thái đích xác định (Yêu cầu A). Chương trình sẽ được cho thêm hai điểm nếu độ dài chuỗi thao tác dưới 300 (Yêu cầu B).
Input
Tệp INPUT.TXT chứa 8 số ngun dương mơ tả trạng thái đích.
Output
Trong tệp OUTPUT.TXT, trên dịng đầu tiên, chương trình của bạn hãy viết độ dài L của chuỗi thao tác. L dòng tiếp theo, mỗi dòng chứa tên một thao tác cơ bản.
Công cụ
MTOOL.EXE là một chương trình trên thư mục của bài tốn cho phép bạn chơi trị chơi ơ vng thần bí. Bằng cách thực hiện lệnh “mtool input.txt output.txt”, bạn sẽ đến được trạng thái đích và chuỗi thao tác.
Ví dụ Input và Output
The 9th International Olympiad in Informatics, 1997.