plates.resize(n + 1, vector<int>(k + 1, 0));
resize()
не делает то, что вы думаете. resize()
здесь не устанавливает каждое значение в векторе с измененным размером на второй параметр. Только новые значения в векторе, если он растет, устанавливаются на это значение.
Итак, если в первый раз через внешний l oop vector был 2 строки на 2 столбца, и во второй раз через внешний l oop размеры указаны как 50x50, это добавит еще 48 значений к plates
, каждое из которых является вектором с 50 значениями.
Но первые два значения в plates
векторе остаются неизменными, с их исходным двузначным вектором в них.
Решение кажется очевидным: добавьте plates.clear()
перед этим resize()
.