Cod sursa(job #612376)

Utilizator Magnuscont cu nume gresit sau fals Magnus Data 7 septembrie 2011 10:59:17
Problema Car Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <cstdio>

int v[301][301];

int main()
{
    int sol=0,x,y,i,j,n,m,k,aux;
    freopen("tir.in","r",stdin);
    freopen("tir.out","w",stdout);
    scanf("%d %d %d\n",&n,&m,&k);
    for (;k;--k)
    {
        scanf("%d %d\n",&x,&y);
        ++v[x][y];
    }
    for (i=1;i<=n;++i)
        for (j=1;j<=n;++j)
            v[i][j]+=v[i-1][j]+v[i][j-1]-v[i-1][j-1];
    for (i=1;i<=n-m+1;++i)
        for (j=1;j<=n-m+1;++j)
        {
            aux=0;
            for (k=1;k<=m/2;++k)
                aux+=v[i+m-k][j+m-k]-v[i+k-2][j+m-k]-v[i+m-k][j+k-2]+v[i+k-2][j+k-2];
            if (m%2)
                aux+=v[i+m/2][j+m/2]-v[i+m/2-1][j+m/2]-v[i+m/2][j+m/2-1]+v[i+m/2-1][j+m/2-1];
            if (aux>sol)
            {
                sol=aux;
                x=i;
                y=j;
            }
        }
    printf("%d\n%d %d\n",sol,x,y);
    return 0;
}