C/C++

Как посчитать самую длинную серию чисел в двумерном массиве, а выводить номер строки

Вроде легко, но уже мозги не варят, а надо сдать завтра. Помогите, пожалуйста
Https://pastebin.com/W6iTSXZk
Вот проблемное место. Вроде относительно верно, но не знаю, где промахнулся. Заранее спасибо
#include <iostream>
#include <iomanip>
#include <random>
#include <set>
using namespace std;
unsigned integer(const char* msg) {
cout << msg;
unsigned value;
cin >> value;
cin.ignore(cin.rdbuf()->in_avail());
return value;
}
int main() {
uniform_int_distribution<> uid(0, 9);
mt19937 gen{ random_device()() };
auto n = integer("n: ");
auto m = integer("m: ");
auto matrix = new int* [n];
for (auto i = 0U; i < n; ++i) {
matrix[i] = new int[m];
for (auto j = 0U; j < m; ++j) matrix[i][j] = uid(gen);
}
for (auto i = 0U; i < n; ++i) {
for (auto j = 0U; j < m; ++j) cout << matrix[i][j] << ' ';
puts("");
}
auto columns = 0U;
for (auto j = 0U; j < m; ++j) {
for (auto i = 0U; i < n; ++i) {
if (matrix[i][j] == 0) {
++columns;
break;
}
}
}
cout << "Columns: " << columns << '\n';
auto line = 0U;
auto count = 0U;
for (auto i = 0U; i < n; ++i) {
set<int> box;
for (auto j = 0U; j < m; ++j) box.insert(matrix[i][j]);
auto difference = m - box.size();
if (difference > count) {
count = difference;
line = i + 1U;
}
}
cout << "Line: " << line << '\n';
for (auto i = 0U; i < n; ++i) delete[] matrix[i];
delete[] matrix;
system("pause > nul");
}
АД
Андрей Дмитриев
80 074
Лучший ответ
Марат Самигуллин а где именно выполняется проблемное место в вашей проге?