Твой код проверяет по вертикали. Только вместоfor (int y=1; y<N; y+=M+1)
надоfor (int y=1; y<N; y++)
Понял почему? Это будет просматривать по только одной диагонали(0,0),(1,1),(2,2) Но есть и другие (0,1),(1,2),(2,3). Как с ними быть? Приведи решение. Что нужно перед этим циклом писать? for(x = 0, y = 1; x < 5 && y < 5; x++, y++)
{
cout << x << " " << y << "\n";
}