Cod sursa(job #1798182)

Utilizator demetriad-dagpagDavid Demetriad demetriad-dagpag Data 4 noiembrie 2016 21:57:36
Problema Ferma2 Scor 0
Compilator c Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <stdio.h>
#include <stdlib.h>
int a[1001][1001],sumv[1001][1001],sumo[1001][1001],rez[1001][1001];
int main()
{
    int i,j,n,k,min,s;
    freopen("ferma2.in","r",stdin);
    freopen("ferma2.out","w",stdout);
    scanf("%d%d",&n,&k);
    s=0;
    for(i=1; i<=n; i++)
        for(j=1; j<=i; j++){
            scanf("%d",&a[i][j]);
            s+=a[i][j];
        }
    for(i=1; i<=n; i++)
        for(j=1; j<=i; j++)
            sumv[i][j]=sumv[i-1][j]+a[i][j];
    for(i=1; i<=n; i++)
        for(j=1; j<=i; j++)
            sumo[i][j]=sumo[i][j-1]+a[i][j];
    for(i=n-k-1; i<=n-1; i++)
        rez[i][0]=a[i][1];
    min=100*1000*1000;
    for(i=n-k; i<=n; i++)
        for(j=1; j<=i-n+k+1; j++){
            rez[i][j]=rez[i-1][j-1]-(sumv[i-1][j-1]-sumv[i-1-(n-k)][j-1])+(sumo[i][j+(n-k)-1]-sumo[i][j-1]);
            if(rez[i][j]<min)
                min=rez[i][j];
        }
    printf("%d\n",s-min);

    return 0;
}