Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

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)

© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.