Pagini recente » Cod sursa (job #2551605) | Cod sursa (job #2686458) | Cod sursa (job #2878230) | Cod sursa (job #2294290) | Cod sursa (job #978275)
Cod sursa(job #978275)
#include <stdio.h>
#include <string.h>
#define dim 1005
using namespace std;
int A[dim][dim],B[dim][dim],C[dim][dim],N,i,j,MIN,k,v[dim];
char s[3*dim];
int min(int a, int b, int c)
{
if( a <= b && a <= c )
return a;
else if( b <= a && b <= c )
return b;
return c;
}
int main()
{
FILE *f=fopen("custi.in","r"), *g=fopen("custi.out","w");
fscanf(f,"%d\n",&N);
for( i = 1; i <= N; i++ )
{
C[1][i] = 1;
C[2][i] = 1;
}
for( i = 1; i <= N; i++ )
{
fgets(s,dim,f);
for( j = 1; j <= N; j++ )
{
if( s[j*2-2] == '1' )
{
v[1]++;
A[ i ][ j ] = A[ i ][ j - 1 ] + 1;
B[ i ][ j ] = B[ i - 1 ][ j ] + 1;
}
C[i+2][j] = 1;
MIN = min(A[i][j],B[i][j],C[i][j]);
for( k = 2; k <= MIN; k++ )
v[ k ] ++;
C[ i+1 ][ j+1 ] = MIN + 1;
}
}
fclose(f);
for( i = 1; i <= N; i++ )
fprintf(g,"%d\n",v[i]);
fclose(g);
return 0;
}