Party Lamps

Một phần của tài liệu ĐỀ THI OLYMPIC TIN HỌC QUỐC TẾ potx (Trang 92 - 97)

- .LCN với chương trình LOGO, PAS với chương trình PASCAL

3. Party Lamps

Để thắp sáng buổi dạ hội tại Cuộc thi Olympic Tin học quốc tế năm 1998, chúng ta có một bộ gồm N ngọn đèn màu đánh số từ 1 đến N. Các ngọn đèn được nối với nhau bằng bốn nút:

nút 1

khi bấm nút này, tất cả các ngọn đèn đều đổi trạng thái: các ngọn đèn đang ở chế độ ON sẽ chuyển thành OFF và tất cả các ngọn đèn ở chế độ OFF sẽ chuyển thành ON.

nút 2

thay đổi trạng thái của tất cả các ngọc đèn mang số lẻ. nút 3

thay đổi trạng thái của tất cả các ngọn đèn mang số chẵn. nut 4

thay đổi trạng thái của tất cả các ngọn đèn được đánh số dạng 3K+1 (với K>=0), ví dụ: 1,4,7,...

Có một chiếc máy đếm C ghi lại tổng số lần bấm nút.

Bài toán

Cho trước giá trị đếm máy C ghi được và thông tin trạng thái cuối cùng của một số ngọn đèn. Hãy viết chương trình xác định trạng thái cuối cùng có thể (không lặp lại) của N ngọn đèn theo thông tin cho trước.

Input

File PARTỴIN chứa bốn dòng: số ngọn đèn N, số lần bấm đèn C và trạng thái cuối cùng của một số ngọn đèn.

Dòng đầu tiên chứa số N và dòng thứ hai chứa giá trị cuối cùng máy đếm C ghi nhận. Dòng thứ ba chứa số ngọn đèn ở trạng thái cuối cùng là ON, các thông tin được ngăn cách bằng ký tự trống, cuối dòng có số nguyên -1. Dòng thứ tư chứa số ngọn đèn ở trạng thái cuối cùng là OFF, các thông tin cũng được ngăn cách bằng ký tự trống và kết thúc bằng số nguyên -1. Sample Input 10 1 -1 7 -1

Trong ví dụ này có tất cả 10 ngọn đèn và chỉ một nút đã được bấm. Ngọn đèn số 7 ở trạng thái cuối cùng là OFF.

Output

File PARTỴOUT phải chứa tất cả các trạng thái cuối cùng (không lặp lại) có thể của tất cả các ngọn đèn. Mỗi trạng thái phải được thể hiện trên một dòng riêng. Các trạng thái có thể được sắp xếp tuỳ ý.

Mỗi dòng có N ký tự trong đó ký tự đầu tiên chỉ trạng thái của ngọn đèn số 1 và chữ số cuối cùng chỉ trạng thái của ngọn đèn N. Số 0 chỉ ngọn đèn ở trạng thái OFF và số 1 chỉ ngọn đèn ở trạng thái ON.

Sample Output

0000000000 0110110110 0101010101

Trong trường hợp này, các ngọn đèn có thể ở ba trạng thái: • tất cả các ngọn đèn đều ở trạng thái OFF;

• hoặc các ngọn đèn 1, 4, 7, 10 ở trạng thái OFF và các ngọn đèn 2, 3, 5, 6, 8, 9 ở

trạng thái ON;

• hoặc các ngọn đèn 1, 3, 5, 7, 9 ở trạng thái OFF và các ngọn đèn 2, 4, 6, 8, 10 ở

trạng thái ON.

Ràng buộc

Các tham số N và C thỏa mãn điều kiện: 10 <= N <= 100, 1 <= C <= 10000 Số ngọn đèn có trạng thái cuối cùng là ON nhỏ hơn hoặc bằng 2.

Số ngọn đèn có trạng thái cuối cùng là OFF nhỏ hơn hoặc bằng 2.

Có ít nhất một trạng thái cuối cùng cho các ngọn đèn trong file chạy thử.

1. Picture

Có một số tấm áp phích, ảnh và tranh cùng có hình chữ nhật dán trên tường. Các cạnh của chúng đều là nằm ngang hoặc thẳng đứng. Mỗi hình chữ nhật đều có thể nằm một phần hoặc toàn bộ trong các hình chữ nhật khác. Chiều dài đường bao quanh khối hình chữ nhật như hình dưới được gọi là đường vành đaị

Bài toán

Hãy viết chương trình tính chiều dài đường vành đaị Ví dụ có 7 hình chữ nhật nằm như hình dưới 1.

Hình 1. Một khối 7 hình chữ nhật

Đường vành đai của khối đó được thể hiện trong hình 2.

Hình 2. Đường vành đai của khối hình chữ nhật

Input

Dòng đầu tiên của file PICTURẸIN chứa số hình chữ nhật dán trên tường. Trong mỗi dòng tiếp theo có các tọa độ nguyên của đỉnh dưới bên trái và đỉnh trên bên phải của mỗi hình chữ nhật. Giá trị của các tọa độ đó được cho dưới dạng từng cặp (x, y).

Sample Input 7 -15 0 5 10 -5 8 20 25 15 -4 24 14 0 -6 16 4 2 15 10 22 30 10 36 20 34 0 40 16

Dữ liệu vào tương ứng với hình 1 ở trên.

Output

File PICTURẸOUT phải có một dòng chứa một số nguyên không âm thể hiện chiều dài của đường vành đai tìm được.

Sample Output

228

Chiều dài đường vành đai ở hình 2.

Ràng buộc

0 <= số hình chữ nhật cho trước< 5000

Tất cả các tọa độ đều nằm trong khoảng [-10000,10000] và bất kỳ hình chữ nhật nào cũng có một phần nằm ở phần tọa độ dương.

Chiều dài tìm được được thể hiện ở dạng mã 32-bit.

Hình 1. Bàn cờ

Quân Vua có thể di chuyển đến đến bất kỳ ô nào ở xung quanh ô đang đứng (từ sang ) như hình 2.

Hình 2. Các ô có thể đi của quân vua

Quân Hiệp sỹ có thể nhảy từ ô sang ô như hình 3 dướị

Hình 3. Các vị trí có thể nhảy đến của quân Hiệp sỹ

Trong khi chơi, người chơi có thể đặt nhiều hơn một quân vào cùng một ô vuông. Bàn cờ đủ lớn để một quân cờ không cản trở bước đi của một quân khác.

Mục đích chơi là người chơi phải xếp các quân cờ vào cùng một vuông với số lần di chuyển là ít nhất. Người chơi bắt buộc phải di chuyển quân cờ theo quy định trên. Bên cạnh đó, mỗi khi quân vua và một vài quân hiệp sỹ nằm trong cùng một vuông, từ đó trở đi người chơi chỉ có thể lấy quân vua và một quân hiệp sỹ di chuyển đến ô khác cho đến khi trò chơi kết thúc. Lần di chuyển quân vua và quân hiệp sỹ đó được coi là một lần di chuyển .

Bài toán

Hãy viết chương trình đếm số lần di chuyển quân ít nhất để đưa các quân vào một ô vuông trên bàn cờ.

Input

File CAMELOT.IN chứa dữ liệu ban đầu về bàn cờ là một chuỗi các ký tự. Chuỗi ký tự chứa lần lượt 64 vị trí khác nhau trên bàn cờ trong đó có vị trí đầu tiên là quân vua và các vị trí còn lại là quân hiệp sỹ. Mỗi vị trí là một cặp ký tự-số. Ký tự chỉ tọa độ ngang của ô bàn cờ, số chỉ tọa độ dọc của ô bàn cờ.

Sample Input

D4A3A8H1H8

Output

File CAMELOT.OUT là một dòng chứa một số nguyên chỉ số lần di chuyển quân ít nhất để đưa được tất cả các quâ vào cùng một ô.

Sample Output

10

Ràng buộc

0 <= số quân hiệp sỹ <= 63

Một phần của tài liệu ĐỀ THI OLYMPIC TIN HỌC QUỐC TẾ potx (Trang 92 - 97)

Tải bản đầy đủ (DOC)

(187 trang)
w