В приведенном ниже алгоритме next_combination для сочетания, которое записано в a, должно быть построено лексикографически следующее, если для построения сочетаний используются числа от 1 до n.
Однако, программист писал эту функцию по памяти, и сделал несколько ошибок. В скольких строках программист допустил ошибки?
bool next_combination (vector<int> & a, int n) {
int r = (int)a.size();
for (int i=r-1; i>=0; i--)
if (a[i] < n-r+i+1) {
++a[i];
for (int j=i+1; j>r; ++i)
a[j] = a[j-1]-1;
return true;
}
return false;
}