#include <iostream>
#include <algorithm>
#include <vector>
#include <iterator>
using namespace std;
int main(){
vector <int> array;
int dp=0;
int n,d;
vector<int>::const_iterator j;
cin >> n >> d;
for (int i = 0; i < n; ++i)
{
array.push_back(0);
cin >> array[i];
}
sort(array.begin(),array.begin()+n);
for (int i = 0; i < n-1; ++i)
{
for ( j=lower_bound(array.begin()+i, array.end, array[i]+d); j < n-1; ++j)
{
if (*j-1!=0)
{
if (array[*j]!=array[*j-1])
{
break;
}
}
dp+=1;
}
}
cout << dp;
return 0;
}
не знаю как заставить это работать. перепробовал уже все варианты (auto, iterator, const_iterator). все ломается именно на строке с lower_bound.
no matching function for call to 'lower_bound(__gnu_cxx::__normal_iterator >, , __gnu_cxx::__alloc_traits >::value_type)'
Чтобы поправить ошибки компиляции можно паписать
for
(
j = lower_bound(array.begin() + i, array.end(), array[i] + d);
j < (array.begin() + n - 1);
++j
)
еще тут явно нужны проверки на выход за пределы массива при индексировани, например перед array[*j]
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть задача распаковать данные, запакованные с помощью zlib и это делается всего одной функцией из этой библиотекиНо если у меня из всей библиотеки...
Есть цикл рисующий график функции f(x) = x * x * x - 10 * x*x - 3 * x + 59 с помощью LineToНо при отображении получаются ломанные линии,как это можно исправить?