Untitled
unknown
plain_text
a year ago
934 B
8
Indexable
vector<int> solve(a,l,k) { auto balance = [&]() { while ((int)small.size() >= l) { large.insert(*--small.end()); small.erase(--small.end()); } while ((int)small.size() < l-1) { small.insert(*large.begin()); large.erase(large.begin()); } }; auto add = [&](int x) { small.insert(x); }; auto rem = [&](int x) { auto it = small.find(x); if (it != small.end()) small.erase(it); else { it = large.find(x); large.erase(it); } }; for (int i=0; i<k; i++) small.insert(a[i]); balance(); vector<int> ret; for (int i=k; i<=n; i++) { ret.push_back( *large.begin()); if (i < n) { add(a[i]); rem(a[i-k]); balance(); } } return ans; }
Editor is loading...
Leave a Comment