spread([1, 1, 1, 1, 1], 7); // [3, 3, 3, 2, 1], хотя должно быть [3, 3, 2, 2, 2]
bins.forEach(key => result[key] += diff);
Можно вместо этого в конце всем затронутым числам дать склько нужно до последнего. add_by_vector ... marked ‘override’, but does not override
virtual C add_by_vector(const C&) = 0;
DVector(2)<T>
DVector(2) add_by_vector(const DVector(2)&) const;
Неконстантная функция, функция без модификатора в конце const?
Ещё одна ошибка.
int f(int x) const {
Неважно. Какой из двух минимальных варинатов выберет код - тот и вернется.
На следующем шаге сдвинется второй из равных указателей. Да, надо будет сгенрированное число проигнорировать, если оно равно последнему сгенерированному числу, а только сдвинуть указатель Или можно двигать все указатели, которые дают тоже самое число.
И откуда там вообще может взятся 14? Ведь мы каждый раз умножаем число из списка на 2,3 или 5 (указатели в списке, а не топо счетчике же). Дальше по индукции доказывается, что все числа будут регулярными.
Ну вот еще несколько шагов в примере:
указатели: 3, 2, 1
список: {1, 2, 3, 4}
варианты: 3*2, 2*3, 1*5. Лучший - 5.
указатели: 3, 2, 2
список: {1, 2, 3, 4, 5}
варианты: 3*2, 2*3, 2*5. Лучший - 3*2=6.
указатели: 4, 2, 2
список: {1, 2, 3, 4, 5, 6}
варианты: 4*2, 2*3, 2*5. Лучший - 2*3 = 6, но его надо проигнорировать.
указатели: 4, 3, 2
список: {1, 2, 3, 4, 5, 6}
варианты: 4*2, 3*3, 2*5. Лучший - 8
указатели: 5, 3, 2
список: {1, 2, 3, 4, 5, 6, 8}
варианты: 5*2, 3*3, 2*5. Лучший - 9
указатели: 5, 4, 2
список: {1, 2, 3, 4, 5, 6, 8, 9}
варианты: 5*2, 4*3, 2*5. Лучший - 5*2
указатели: 6, 4, 2
список: {1, 2, 3, 4, 5, 6, 8, 9, 10}
варианты: 6*2, 4*3, 2*5. Лучший - 2*5, игнорируем и второй раз 10 не добавляем.
указатели: 6, 4, 3
список: {1, 2, 3, 4, 5, 6, 8, 9, 10}
варианты: 6*2, 4*3, 3*5. Лучший - 6*2
указатели: 8, 5, 3 // обратите внимание - указатель для 2 перешел с числа 6 на число 8.
список: {1, 2, 3, 4, 5, 6, 8, 9, 10, 12}
варианты: 8*2, 5*3, 3*5. Лучший - 5*3, Потом лучшим будет 3*5 и проигнорируется
указатели: 8, 6, 4
список: {1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15}
варианты: 8*2, 6*3, 4*5. Лучший - 8*2
и т.д.