Pagini recente » Unirea 2007, Clasament pentru clasele IX-X | Cod sursa (job #3246780) | Cod sursa (job #399788) | Cod sursa (job #1427274) | Cod sursa (job #23432)
Cod sursa(job #23432)
// pare ok :)
#include <stdio.h>
#define in "patratel.in"
#define out "patratel.out"
#define dim 1111
bool a[dim][dim];
int sol[dim][dim];
int s, n;
int minim(int a, int b) { return a < b ? a : b; }
int main()
{
int total=0;
freopen(in,"r",stdin);
freopen(out,"w",stdout);
scanf("%d%d",&n,&s);
for ( int i = 1; i <= n; i++ )
{
for ( int j = 1; j <= n; j++ )
{
scanf("%d",&a[i][j]);
}
}
for ( int i = 1; i <= n; i++ )
{
for ( int j = 1; j <= n; j++ )
{
if ( a[i][j] == 1 )
{
sol[i][j] = 0;
continue;
}
sol[i][j] = minim(sol[i-1][j], minim(sol[i-1][j-1],sol[i][j-1])) + 1;
if ( sol[i][j] == s )
{
sol[i][j] -= 1;
total+=1;
}
}
}
printf("%d", total);
}