Pagini recente » Cod sursa (job #1741227) | Cod sursa (job #1916185) | Cod sursa (job #1778651) | Cod sursa (job #3138224) | Cod sursa (job #56345)
Cod sursa(job #56345)
#include<stdio.h>
#include<math.h>
char a[242][242];
int i,n,j,k,l,salv[500],cont;
int s,s2,c,c2;
long smax;
FILE *f=fopen("9.in","r");
FILE *g=fopen("sotron.out","w");
void calc(int a[500],int x,int c)
{
int j,q,i,s=0;
if(c==x)
{
for(j=1;j<=x;j++)
for(q=x;q>=1;q--)
{
s=0;
for(i=j;i<=q;i++)
s=s+a[i];
if(s>smax)
smax=s;
}
}
else
{
for(i=1;i<=x;i++)
{
s=s+a[i];
c++;
if(s>smax)
smax=s;
if(s<0)
s=0;
}
}
}
int main()
{
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
fscanf(f,"%d",&a[i][j]);
smax=-25000000;
for(i=1;i<=n;i+=2)
{
l=i;
k=1;
c=0;
cont=1;
c2=0;
while(l>=1 && k<=n)
{
salv[cont]=a[l][k];
cont++;
c2++;
if(c%2==0)
l--;
else
k++;
c++;
}
calc(salv,cont,c2);
}
for(i=2;i<=n;i+=2)
{
l=i;
k=n;
c=0;
cont=1;
c2=0;
while(l>=1 && k<=n)
{
salv[cont]=a[l][k];
cont++;
c2++;
if(c%2==0)
k++;
else
l--;
c++;
}
calc(salv,cont,c2);
}
fprintf(g,"%d",smax);
fclose(f);
fclose(g);
return 0;
}