#include <iostream>
#include <algorithm>
#include <array>
#include <vector>
#include <functional>
using namespace std;
template <class InputIterator1, class UnaryPredicate>
bool _is_partitioned (InputIterator1 first, InputIterator1 last, UnaryPredicate pred)
{
while (first!=last && pred(*first)) {
++first;
}
while (first!=last) {
if (pred(*first)) return false;
++first;
}
return true;
}
int main(){
array<int,8> t1 = {3,5,7,11,13,17,19,23};
array<int,8> t2 = {19,23,3,5,7,11,13,17};
if(_is_partitioned(t1.begin(),t1.end(),[](int i){return i<15;}))cout<<"is";
//for_each(t2.begin(),t2.end(),[](int i){cout<<i<<endl;});
return 0;
}