#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
template<typename It, typename T>
bool contains_n_gt_x(It first, It last, size_t n, const T& x) {
for (auto curr = first; first != last;) {
first = find_if(curr, last, [&](const auto& y){ return x < y; });
curr = find_if(first, last, [&](const auto& y){ return !(x < y); });
if (distance(first, curr) >= n) return true;
}
return false;
}
int main() {
std::vector<int> v{10, 25, 41, 42, 43, 40, 8, 41, 42, 7, 49, 50, 61, 55, 45, 34, 10, 8};
cout << contains_n_gt_x(begin(v), end(v), 5, 40) << endl;
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnRlbXBsYXRlPHR5cGVuYW1lIEl0LCB0eXBlbmFtZSBUPgpib29sIGNvbnRhaW5zX25fZ3RfeChJdCBmaXJzdCwgSXQgbGFzdCwgc2l6ZV90IG4sIGNvbnN0IFQmIHgpIHsKCWZvciAoYXV0byBjdXJyID0gZmlyc3Q7IGZpcnN0ICE9IGxhc3Q7KSB7CgkJZmlyc3QgPSBmaW5kX2lmKGN1cnIsIGxhc3QsIFsmXShjb25zdCBhdXRvJiB5KXsgcmV0dXJuIHggPCB5OyB9KTsKCQljdXJyID0gZmluZF9pZihmaXJzdCwgbGFzdCwgWyZdKGNvbnN0IGF1dG8mIHkpeyByZXR1cm4gISh4IDwgeSk7IH0pOwoJCWlmIChkaXN0YW5jZShmaXJzdCwgY3VycikgPj0gbikgcmV0dXJuIHRydWU7Cgl9CglyZXR1cm4gZmFsc2U7Cn0KCmludCBtYWluKCkgewoJc3RkOjp2ZWN0b3I8aW50PiB2ezEwLCAyNSwgNDEsIDQyLCA0MywgNDAsIDgsIDQxLCA0MiwgNywgNDksIDUwLCA2MSwgNTUsIDQ1LCAzNCwgMTAsIDh9OwoJY291dCA8PCBjb250YWluc19uX2d0X3goYmVnaW4odiksIGVuZCh2KSwgNSwgNDApIDw8IGVuZGw7Cn0=