Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
L1L2KPAIR - Nối điểm L1L2K |
Trên hai đường thẳng song song L1, 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ố 1, 2, …, n từ trái qua phải, còn các điểm trên đường thẳng L2 được đánh số bởi d1, d2, …, dn là một hoán vị của 1…n cũng được đánh dấu từ trái qua phải (hình dưới đây là một ví dụ cho n = 9)
1-----2-----3-----4-----5-----6-----7-----8-----9 L1
2-----5-----3-----8-----7-----4-----6-----9-----1 L2
Ta được phép nối điểm thứ i trên L1 với điểm thứ j trên L2 nếu |i – dj| ≤ k.
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 hai số nguyên n và k
- Dòng thứ hai chứa các số nguyên d1, d2, …, dn.
Output:
Ghi ra số lượng cặp điểm nối lớn nhất tìm được.
Ví dụ:
Input:
3 1
3 2 1
Output:
2
Giới hạn:
- Subtask 1: n ≤ 1000, k = 0
- Subtask 2: n ≤ 1000, k ≤ 109
- Subtask 3: n ≤ 105, k = 3
Được gửi lên bởi: | noname00.pas |
Ngày: | 2017-11-25 |
Thời gian chạy: | 0.100s |
Giới hạn mã nguồn: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Ngôn ngữ cho phép: | C-CLANG C CSHARP C++ 4.3.2 CPP CPP14 CPP14-CLANG C99 JAVA PAS-FPC PYTHON PYTHON3 |
Nguồn bài: | Bài tập Ôn HN 01/2017 (Thầy Đỗ Đức Đông) |