Bỏ qua đến nội dung

Thao tác trên hoán vị

Mã bài: olpicpc057c13c Nhóm: Uncategorized Dạng bài: Undefined

Giới hạn thời gian
1,0 s
Giới hạn bộ nhớ
256 MB
Điểm
100một phần
Tỉ lệ AC
13,2%
Người giải
187

Cho dãy hoán vị p_1,p_2,...,p_n và một số nguyên k. Hãy thực hiện thao tác sau đây với số lần ít nhất để đưa các phần tử của dãy hoán vị trở thành bằng nhau từng đôi một:

  • Chọn hai chỉ số l và r (1 \le l \le r \le n) thỏa mãn r-l+1=k, gọi m=min([p_l,p_{l+1},...,p_r]), gán p_i=m với mọi l \le i \le r.

Input

  • Dòng đầu tiên chứa hai số nguyên n và k (2 \le k \le n \le 10^5).
  • Dòng thứ hai chứa n số nguyên của dãy hoán vị p (1 \le p_i \le n).
  • Dữ liệu đảm bảo dãy p là một dãy hoán vị hợp lệ.

Output

  • In ra số lần thực hiện thao tác ít nhất.

Examples

Sample Input 1
4 3
2 3 4 1
Sample Output 1
2
Sample Input 2
3 3
2 1 3
Sample Output 2
1

Scoring

  • Subtask 1 - 50 điểm: k=2
  • Subtask 2 - 50 điểm: Không có ràng buộc gì thêm

Notes

Trong ví dụ thứ nhất, thực hiện 2 lần thao tác như sau:

  • Chọn l=2,r=4, khi đó min([p_2,p_3,p_4])=1 và dãy p trở thành [2,1,1,1].
  • Chọn l=1,r=3, khi đó min([p_1,p_2,p_3])=1 và dãy p trở thành [1,1,1,1].

Trong ví dụ thứ hai, thực hiện 1 lần thao tác như sau:

  • Chọn l=1,r=3, khi đó min([p_1,p_2,p_3])=1 và dãy p trở thành [1,1,1].

Bình luận