Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <bits/stdc++.h>using namespace std;typedef long long ll;typedef pair<int, int> pii;int len(pii x) {return x.second-x.first+1;}void solve() {int n, k;scanf("%d%d", &n, &k);set<pii> st;st.insert(pii(1, n));for (int i = 1; i <= n; i++) {int u;scanf("%d", &u);auto iter = *(--st.upper_bound(pii(u, n+1)));st.erase(iter);assert(iter.first <= u && u <= iter.second);if (iter.first < u) {pii tmp = pii(iter.first, u-1);// cout << i << ' ' << len(tmp) << endl;if (len(tmp) == k) {printf("%d\n", i);return ;}st.insert(tmp);