Pagini recente » Monitorul de evaluare | Cod sursa (job #637580) | Cod sursa (job #753257) | Cod sursa (job #362607) | Cod sursa (job #1760068)
#include <fstream>
#define NMAX 1005
#define LL long long
#define INF 99999999999
using namespace std;
ifstream f("diagonale.in");
ofstream g("diagonale.out");
LL d[NMAX][NMAX], i, j, n, v[NMAX][NMAX], s[NMAX][NMAX],mx;
void calcd()
{
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
d[i][j]=d[i-1][j-1]+v[i][j];
}
void calcs()
{
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
s[i][j]=s[i-1][j+1]+v[i][j];
}
int main()
{
f>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
f>>v[i][j];
calcd();
calcs();
mx=-INF;
i=n;
for(j=1;j<=n;j++)
if(d[i][j]>mx)
mx=d[i][j];
for(j=1;j<=n;j++)
if(d[j][i]>mx)
mx=d[j][i];
for(j=1;j<=n;j++)
if(s[i][j]>mx)
mx=s[i][j];
i=1;
for(j=1;j<=n;j++)
if(s[j][i]>mx)
mx=s[j][i];
g<<mx;
}