NOIDIEM - Nối điểm
Dữ liệu vào: standard input
Dữ liệu ra: standard output
Giới hạn thời gian: 1.0 giây
Giới hạn bộ nhớ: 128 megabyte
Đăng bởi: ngoclannt

Trên hai đường thẳng song song ab, người ta đánh dấu trên mỗi đường N điểm. Các điểm trên đường thẳng a được đánh số 1, 2,....,N từ trái qua phải, còn các điểm trên đường b được đánh số bởi D[1], D[2],......,D[n] là một hoán vị của N, cũng được đánh dấu từ trái qua phải (hình vẽ dưới đây cho một ví dụ khi N = 6)

 

Cho phép nối hai điểm thứ i trên a với điểm thứ j trên b nếu i = D[j].

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 NOIDIEM.INP :

  • Dòng đầu tiên chứa số nguyên N (N<=10000)
  • Dòng thứ hai chứa các số D[1], D[2],......,D[n]

Kết quả : Ghi file văn bản NOIDIEM.OUT :

  • Dòng đầu tiên chứa K là số lượng cặp điểm nối tìm được.
  • K dòng tiếp theo, mỗi dòng một cặp số là số thứ tự của a, số thứ tự của b (thứ tự các cặp được liệt kê theo thứ tự tăng dần của a).

NOIDIEM.INP

NOIDIEM.OUT

6

3  2  4  5  1  6

4

2 2

4 3

5 4

6 6

Ví dụ

Back to Top