Олимпиадный тренинг

Задача . Генерация сочетаний из N элементов по K в лексикографическом порядке


Задача

Темы:
В приведенном ниже алгоритме 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;
}

time 1000 ms
memory 32 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя