Trò chơi xoá cạnh đa giác

Một phần của tài liệu Tổng hợp các đề Olympic tin học quốc tế từ năm 1989 đến 2006 (Trang 97 - 100)

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

3. Trò chơi xoá cạnh đa giác

(Polygon - Đề thi Olympic IOI-1998)

Polygon là một trò chơi cho một người mà bắt đầu bởi một đa giác N đỉnh, giống như hình 1, với N = 4. Mỗi đỉnh được đánh nhãn với một số nguyên và mỗi cạnh được đánh nhãn bằng hoặc là dấu cộng hoặc là dấu *. Các cạnh được đánh số từ 1 đến N.

Hình 1: Đồ thị biểu diễn của một đa giác.

Trong bước đi đầu tiên, một trong các cạnh được tách rạ Sau đó lần lượt đi theo các bước sau:

 Chọn một cạnh E và 2 đỉnh V_1 and V_2 là hai đầu mút của cạnh E; Và

 Thay thế chúng bởi một đỉnh mới là kết quả của việc biểu diễn phép toán biểu thị ở cạnh E của các số được đánh nhãn ở V_1 và V_2.

Trị chơi kết thúc khi khơng cịn một cạnh nào, và điểm được tính là nhãn của một đỉnh cịn lạị

Ví dụ:

Hình 2: Tách cạnh 3. Sau đó, chọn cạnh 1. Hình 3: Chọn cạnh 1 (-2 = -7 + 5). rồi đến cạnh 4 Hình 4: Chọn cạnh 4 (-4 = (-2)*2).

Và cuối cùng là chọn cạnh 2. Điểm thu được trong trò chơi theo cách này là 0.

Hình 5: Chọn cạnh 2 (0 = 4 + (-4)).

Nhiệm vụ

Cho đa giác, viết chương trình tính điểm cao nhất có thể và danh sách tất cả các cạnh tách đầu tiên mà nếu dựa vào việc tách cạnh đầu tiên đó thì có thể dẫn đến điểm cao nhất trên.

Dữ liệu vào: trong file POLYGON.IN miêu tả đa giác với N đỉnh, gồm 2 dòng: dòng đầu

tiên là N - số đỉnh của đa giác; dòng thứ 2 nhãn của các cạnh 1, ..., N xen lẫn với nhãn của các đỉnh (đầu tiên là đỉnh giữa hai cạnh 1 và 2, sau đó là đỉnh giữa hai cạnh 2 và 3, ..., cuối cùng là đỉnh giữa hai cạnh N và 1), tất cả cách nhgau bởi một dấu cách. Nhãn của một cạnh hoặc là t (tương ứng với +) hoặc là x (tưng ứng với *).

Sample Input:

4

t -7 t 4 x 2 x 5

Đây là dữ liệu vào cho đa giác tương ứng với hình 1. Dịng thứ nhất là số đỉnh của đa giác; dòng thứ 2 bắt đầu với nhãn của cạnh 1.

Dữ liệu ra: trong file POLYGON.OUT,dòng đầu phải ghi được số điểm cao nhất nhận

được từ dữ liệu vào; dòng thứ 2 là danh sách của tất cả các cạnh được tách đầu tiên mà nếu dựa vào việc tách cạnh đầu tiên đó thì có thể dẫn đến số điểm cao nhất đó.

Các cạnh phải được viết theo thứ tự tăng dần, cách nhau bởi dấu cách. Sample Output

33 1 2 1 2

Kết quả này tương ứng với đa giác cho bởi hình 1.

Điều kiện của bài toán:

3 <= N <= 50 (số đỉnh của đa giác)

Nhãn để đánh dấu các đỉnh là các số nguyên có giới hạn trong đoạn [- 32768,32767].<![endif]>

The 11th International Olympiad in Informatics, 1999.

Một phần của tài liệu Tổng hợp các đề Olympic tin học quốc tế từ năm 1989 đến 2006 (Trang 97 - 100)