#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;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWF0aC5oPgpjb25zdCBpbnQgbV9TaXplID0gNTsKCmludCBHZXRJbmRleChpbnQgcm93LCBpbnQgY29sLCBpbnQgcm93cyA9IG1fU2l6ZSkKewogIHJldHVybiBjb2wqcm93cyArIHJvdzsKfQoKaW50IGFicyhpbnQgeCkKewogIHJldHVybiB4PDA/LXg6eDsKfQoKaW50IG1haW4oKQp7CiAgaW50IG1hdHJpeFttX1NpemUqbV9TaXplXTsKICBmb3IgKGludCBpbmRleD0wOyBpbmRleDxtX1NpemUqbV9TaXplOyArK2luZGV4KQogICAgbWF0cml4W2luZGV4XSA9IGFicyhyb3VuZChzaW4oaW5kZXgrMSkqOTAwMDApKSArIDEwMDAwOwogIHN0ZDo6Y291dCA8PCAiTWF0cml4OlxuIjsKICBmb3IgKGludCByb3c9MDsgcm93PG1fU2l6ZTsgKytyb3cpCiAgewogICAgZm9yIChpbnQgY29sPTA7IGNvbDxtX1NpemU7ICsrY29sKQogICAgICBzdGQ6OmNvdXQgPDwgbWF0cml4W0dldEluZGV4KHJvdywgY29sKV0gPDwgIiAiOwogICAgc3RkOjpjb3V0IDw8ICJcbiI7CiAgfQogIGludCBtaW4gPSBtYXRyaXhbR2V0SW5kZXgoMSwgMSldOyAvLyDQkdC10YDQtdC8INC/0LXRgNCy0YvQuSDRjdC70LXQvNC10L3RgiAtINC/0YDQtdC00L/QvtC70L7QttC40Lwg0Y3RgtC+INC80LjQvdC40LzRg9C8CiAgaW50IHhGID0gMDsKICBpbnQgeUYgPSAwOwogIHdoaWxlICh4RjxtX1NpemUgJiYgeUY8bV9TaXplKQogIHsKICAgIGludCB4ID0geEY7CiAgICBpbnQgeSA9IHlGOwogICAgaW50IHN1bW0gPSAwOwogICAgc3RkOjpjb3V0IDw8ICJcbnN1bW06ICI7CiAgICB3aGlsZSAoeDxtX1NpemUgJiYgeT49MCkKICAgIHsKICAgICAgaW50IG1vZHVsID0gYWJzKG1hdHJpeFtHZXRJbmRleCh4LCB5KV0pOwogICAgICBzdW1tICs9IG1vZHVsOwogICAgICArK3g7CiAgICAgIC0teTsKICAgICAgc3RkOjpjb3V0IDw8IG1vZHVsIDw8ICgoeDxtX1NpemUgJiYgeT49MCkgPyAiICsgIiA6ICIgPSAiKTsKICAgIH0KICAgIHN0ZDo6Y291dCA8PCBzdW1tOwogICAgaWYgKG1pbj5zdW1tKQogICAgICBtaW4gPSBzdW1tOwogICAgaWYgKHlGPG1fU2l6ZS0xKQogICAgICArK3lGOwogICAgZWxzZQogICAgICArK3hGOwogIH0KICBzdGQ6OmNvdXQgPDwgIlxuXG5taW46ICIgPDwgbWluOwp9Cg==