BONUS - VOI 2011 Phần thưởng

Tác giả: hieult

Ngôn ngữ: C++

#include <stdio.h>
//#include <conio.h>

int f[1001][1001],a[1001][1001],g[1001];


int main()
{
    //freopen("BONUS.in","r",stdin);
    int n,m,kq = 0;
    scanf("%d %d",&n,&m);
    for(int i = 1;i<=n;i++) {f[i][1] = 0,g[i]=0;}
    for(int i = 1;i<=n;i++)
        for(int j = 1;j<=n;j++)
        {
            scanf("%d",&a[i][j]);
            if(j<=m)
                f[i][1] += a[i][j];
            else f[i][j-m+1] = f[i][j-m]+a[i][j]-a[i][j-m];
        }
    for(int i = 1;i<=n-m+1;i++)
        for(int j = 1;j<=n;j++)
        {
             if(j<=m) g[i] += f[j][i];
             else g[i] += f[j][i]-f[j-m][i];
             if(g[i]>kq)
                kq = g[i];
        }
    printf("%d",kq);
   // getch();
}
    

Download