[Thọ Xuân 5 - KS HSG TỈNH - 2024] Nối điểm

Xem dạng PDF

Gửi bài giải

Điểm: 20,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: BAI5.INP
Output: BAI5.OUT

Người đăng:
Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Pascal, PyPy, Python, Scratch

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Trên hai đường thẳng song song ~a~ và ~b~, 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, \dots, N từ trái qua phải, còn các điểm trên đường thẳng ~b~ được đánh số bởi ~D[1], D[2], \dots, D[n]~ là một hoán vị của ~N~, cũng được đánh dấu từ trái qua phải. 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]~.

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.

Input

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

Output

  • 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~).

Sample Input 1

6
3 2 4 5 1 6

Sample Output 1

4
3 1
4 3
5 4
6 6

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.