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 L2 cũng được đánh số bằng p1, p2,…,pN 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 đây cho ví dụ từ 1 đế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ừ tệp văn bản WIRES.INP
+ Dòng
đầu chứa số nguyên dương N (N<=1000)
+ Dòng
thứ hai chứa các số nguyên p1, p2,…,pN các
nhau bởi một ký tự trắng
Kết quả: ghi vào tệp 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 (nếu có nhiều cách
thì chỉ cần đưa ra một cách bất kỳ)
Ví
dụ:
WIRES.INP
|
WIRES.OUT
|
9
2
5 3 8 7 4 6 9 1
|
5
2
3 4 6 9
|