Trên hai đường thẳng song song L1 và L2 người ta đánh dấu trên mỗi đường N điểm. Các điểm trên đường thẳng L1 được đánh số từ 1 đến N từ trái qua phải, còn các điểm trên đường thẳng L2 được đánh số bằng p1, p2, ..., pn cũng từ trái qua phải với p1, p2, ..., pn là một hoán vị của 1, 2, ..., n (hình vẽ dưới dây cho 1 ví dụ khi n=9):
Ta gọi các số gán cho các điểm là số hiệu của chúng. Cho phép nối hai điểm trên hai đường thẳng có cùng số hiệu.
Yêu cầu: Tìm cách nối được nhiều cặp điểm nhất với điều kiện các đoạn nối không được cắt nhau.
Dữ liệu: Vào từ file văn bản WIRES.INP:
- Dòng đầu tiên chứa số nguyên dương N (Ns£1000)
- Dòng thứ hai chứa các số nguyên p1, p2, ..., pn cách nhau bởi dấu trắng
Kết quả: Ghi ra file văn bản WIRES.OUT:
- Dòng đầu tiên chứa k là số lượng các đoạn nối tìm được
- Dòng tiếp theo chứa k số hiệu của các đầu mút của các đoạn nối được ghi theo thứ tự tăng dần.
Ví dụ:
WIRES.INP
|
WIRES.OUT
|
9
2 5 3 8 7 4 6 9 1
|
5
2 3 4 6 9
|