#include <iostream>
using namespace std;
int main() {
int n; // размер матрицы
cin >> n;
double x[n][n]; //обьявление матрицы как двухмерного массива
for (int i=0; i<n; i++) // ввод данных
for(int j=0; j<n; j++)
cin >> x[i][j];
/*for(auto &row : x){ //распечатка массива (если понадобится)
for(auto e:row)
printf("%.2lf ", e);
cout << "\n";
}
cout << endl;*/
double y[n]; //массив в который будут определятся максимумы строк
for (int i=0; i<n; i++){ //находим максимум каждой строки и кладем его в
y[i]=x[i][0]; // соответствующую ячейку массива y
for(int j=1; j<n; j++)
y[i]= (y[i]>x[i][j])? y[i]:x[i][j];
}
int str=0, end=n-1; //переменные для контроля симметричности относительно средней строки
double result=0; // переменная для определения результата
for (int i=0; i<n; i++){ // перемножаем нужные элементы и суммируем
result+=y[str+i]*y[end-i];
//cout << result << "\t"; //печать суммы каждого шага
}
cout << result << endl; // вывод результата на экран
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CglpbnQgbjsgLy8g0YDQsNC30LzQtdGAINC80LDRgtGA0LjRhtGLCgljaW4gPj4gbjsKCWRvdWJsZSB4W25dW25dOyAvL9C+0LHRjNGP0LLQu9C10L3QuNC1INC80LDRgtGA0LjRhtGLINC60LDQuiDQtNCy0YPRhdC80LXRgNC90L7Qs9C+INC80LDRgdGB0LjQstCwCglmb3IgKGludCBpPTA7IGk8bjsgaSsrKSAvLyDQstCy0L7QtCDQtNCw0L3QvdGL0YUKCQlmb3IoaW50IGo9MDsgajxuOyBqKyspCgkJCWNpbiA+PiB4W2ldW2pdOwoJCQkKCS8qZm9yKGF1dG8gJnJvdyA6IHgpeyAgLy/RgNCw0YHQv9C10YfQsNGC0LrQsCDQvNCw0YHRgdC40LLQsCAo0LXRgdC70Lgg0L/QvtC90LDQtNC+0LHQuNGC0YHRjykKCQlmb3IoYXV0byBlOnJvdykKCQkJcHJpbnRmKCIlLjJsZiAgICIsIGUpOwoJCWNvdXQgPDwgIlxuIjsKCX0KCWNvdXQgPDwgZW5kbDsqLwoJZG91YmxlIHlbbl07IC8v0LzQsNGB0YHQuNCyINCyINC60L7RgtC+0YDRi9C5INCx0YPQtNGD0YIg0L7Qv9GA0LXQtNC10LvRj9GC0YHRjyDQvNCw0LrRgdC40LzRg9C80Ysg0YHRgtGA0L7QugoJCglmb3IgKGludCBpPTA7IGk8bjsgaSsrKXsgLy/QvdCw0YXQvtC00LjQvCDQvNCw0LrRgdC40LzRg9C8INC60LDQttC00L7QuSDRgdGC0YDQvtC60Lgg0Lgg0LrQu9Cw0LTQtdC8INC10LPQviDQsiAKCQl5W2ldPXhbaV1bMF07IC8vICAgICAgICAg0YHQvtC+0YLQstC10YLRgdGC0LLRg9GO0YnRg9GOINGP0YfQtdC50LrRgyDQvNCw0YHRgdC40LLQsCB5CgkJZm9yKGludCBqPTE7IGo8bjsgaisrKQoJCSAJeVtpXT0gKHlbaV0+eFtpXVtqXSk/IHlbaV06eFtpXVtqXTsKCQkKCX0KCWludCBzdHI9MCwgZW5kPW4tMTsgLy/Qv9C10YDQtdC80LXQvdC90YvQtSDQtNC70Y8g0LrQvtC90YLRgNC+0LvRjyDRgdC40LzQvNC10YLRgNC40YfQvdC+0YHRgtC4INC+0YLQvdC+0YHQuNGC0LXQu9GM0L3QviDRgdGA0LXQtNC90LXQuSDRgdGC0YDQvtC60LgKCWRvdWJsZSByZXN1bHQ9MDsgLy8g0L/QtdGA0LXQvNC10L3QvdCw0Y8g0LTQu9GPINC+0L/RgNC10LTQtdC70LXQvdC40Y8g0YDQtdC30YPQu9GM0YLQsNGC0LAKCQoJZm9yIChpbnQgaT0wOyBpPG47IGkrKyl7IC8vINC/0LXRgNC10LzQvdC+0LbQsNC10Lwg0L3Rg9C20L3Ri9C1INGN0LvQtdC80LXQvdGC0Ysg0Lgg0YHRg9C80LzQuNGA0YPQtdC8CgkJcmVzdWx0Kz15W3N0citpXSp5W2VuZC1pXTsgCgkJLy9jb3V0IDw8IHJlc3VsdCA8PCAiXHQiOyAvL9C/0LXRh9Cw0YLRjCDRgdGD0LzQvNGLINC60LDQttC00L7Qs9C+INGI0LDQs9CwCgl9CgkKCWNvdXQgPDwgcmVzdWx0IDw8IGVuZGw7IC8vINCy0YvQstC+0LQg0YDQtdC30YPQu9GM0YLQsNGC0LAg0L3QsCDRjdC60YDQsNC9CgkKCXJldHVybiAwOwp9