#include <iostream>
#include <math.h>
const int m_Size = 5;

int GetIndex(int row, int col, int rows = m_Size)
{
  return col*rows + row;
}

int abs(int x)
{
  return x<0?-x:x;
}

int main()
{
  int matrix[m_Size*m_Size];
  for (int index=0; index<m_Size*m_Size; ++index)
    matrix[index] = abs(round(sin(index+1)*90000)) + 10000;
  std::cout << "Matrix:\n";
  for (int row=0; row<m_Size; ++row)
  {
    for (int col=0; col<m_Size; ++col)
      std::cout << matrix[GetIndex(row, col)] << " ";
    std::cout << "\n";
  }
  int min = matrix[GetIndex(1, 1)]; // Берем первый элемент - предположим это минимум
  int xF = 0;
  int yF = 0;
  while (xF<m_Size && yF<m_Size)
  {
    int x = xF;
    int y = yF;
    int summ = 0;
    std::cout << "\nsumm: ";
    while (x<m_Size && y>=0)
    {
      int modul = abs(matrix[GetIndex(x, y)]);
      summ += modul;
      ++x;
      --y;
      std::cout << modul << ((x<m_Size && y>=0) ? " + " : " = ");
    }
    std::cout << summ;
    if (min>summ)
      min = summ;
    if (yF<m_Size-1)
      ++yF;
    else
      ++xF;
  }
  std::cout << "\n\nmin: " << min;
}
