fork download
  1. #include <iostream>
  2. #include <math.h>
  3. const int m_Size = 5;
  4.  
  5. int GetIndex(int row, int col, int rows = m_Size)
  6. {
  7. return col*rows + row;
  8. }
  9.  
  10. int abs(int x)
  11. {
  12. return x<0?-x:x;
  13. }
  14.  
  15. int main()
  16. {
  17. int matrix[m_Size*m_Size];
  18. for (int index=0; index<m_Size*m_Size; ++index)
  19. matrix[index] = abs(round(sin(index+1)*90000)) + 10000;
  20. std::cout << "Matrix:\n";
  21. for (int row=0; row<m_Size; ++row)
  22. {
  23. for (int col=0; col<m_Size; ++col)
  24. std::cout << matrix[GetIndex(row, col)] << " ";
  25. std::cout << "\n";
  26. }
  27. int min = matrix[GetIndex(1, 1)]; // Берем первый элемент - предположим это минимум
  28. int xF = 0;
  29. int yF = 0;
  30. while (xF<m_Size && yF<m_Size)
  31. {
  32. int x = xF;
  33. int y = yF;
  34. int summ = 0;
  35. std::cout << "\nsumm: ";
  36. while (x<m_Size && y>=0)
  37. {
  38. int modul = abs(matrix[GetIndex(x, y)]);
  39. summ += modul;
  40. ++x;
  41. --y;
  42. std::cout << modul << ((x<m_Size && y>=0) ? " + " : " = ");
  43. }
  44. std::cout << summ;
  45. if (min>summ)
  46. min = summ;
  47. if (yF<m_Size-1)
  48. ++yF;
  49. else
  50. ++xF;
  51. }
  52. std::cout << "\n\nmin: " << min;
  53. }
  54.  
Success #stdin #stdout 0s 3296KB
stdin
Standard input is empty
stdout
Matrix:
85732 35147 99999 35911 85299 
91837 69129 58292 96526 10797 
22701 99042 47815 77589 86160 
78112 47091 99155 23489 91502 
96303 58962 68526 92165 21912 

summ: 85732 = 85732
summ: 35147 + 91837 = 126984
summ: 99999 + 69129 + 22701 = 191829
summ: 35911 + 58292 + 99042 + 78112 = 271357
summ: 85299 + 96526 + 47815 + 47091 + 96303 = 373034
summ: 10797 + 77589 + 99155 + 58962 = 246503
summ: 86160 + 23489 + 68526 = 178175
summ: 91502 + 92165 = 183667
summ: 21912 = 21912

min: 21912