Time Limit: 2 sec / Memory Limit: 256 MB
問題
与えられた長さ n の数列 α = (a_1, ..., a_n) が k-sorted かどうかを判定せよ。 全ての 1 ≦ i, j ≦ n に対して i < j - k ならば a_i ≦ a_j が成り立つとき、およびそのときに限り、α は k-sorted であるという。 0-sorted は普通のソートと等価である。
入力
入力は複数のデータセットからなり、入力の終わりはスペースで区切られた 2 つの -1
からなる。
各データセットは以下のように 2 行で構成される。
n k a_1 ... a_n
1 行目は 2 つの整数で構成される。 数列 α の長さを表す n に続き、k-sorted の k が与えられる。 n と k は、それぞれ 0 ≦ n ≦ 50,000, 0 ≦ k ≦ n の条件を満たす。
2 行目は n 個の整数で構成される。 i 番目の整数が数列 α の i 番目の要素 a_i を表す (1 ≦ i ≦ n)。 数列 α の要素 a_i は、0 ≦ a_i < 2^{63} の条件を満たす。
出力
各データセットについて、与えられた数列 α が k-sorted であるなら Yes
を、そうでないなら No
をそれぞれ 1 行に出力せよ。
入力例
3 0 1 2 3 3 0 2 1 3 3 1 2 1 3 3 1 3 1 2 3 2 3 1 2 1 1 1 1 0 1 0 0 -1 -1
出力例
Yes No Yes No Yes Yes Yes Yes