Cod sursa(job #890110)

Utilizator veleanduAlex Velea veleandu Data 24 februarie 2013 21:05:37
Problema Tablete Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <cstdio>
using namespace std;

int El[1001][1001],i,j,nr,k,n;
bool Viz[10000005];

int main(){
	freopen("tablete.in","r",stdin);
	freopen("tablete.out","w",stdout);
	scanf("%d %d", &n, &k );
	nr=1;
	for( j=1; j<k-1; ++j ){
		for( i=1; i<=n; ++i ){
			Viz[ nr ] = 1;
			El[i][j]=nr++;

		}
	}
	// completam coloanele k-1,k
	if( nr&1 )
		;
	else{
		Viz[ El[ n-1 ][ k-2 ] ] = 0;
		El[ n-1 ][ k-2 ] = nr+1;
		Viz[ nr+1 ] = 1;
		nr-=3;
		if( nr < 1 )
			nr=1;
	}
	for( i=1; i<=n; ++i ){
		for( j=k-1; j<=k; ++j ){
			while( Viz[ nr ] )
				nr++;
			Viz[ nr ] = 1;
			El[i][j]=nr++;
		}
	}
	for( j=k+1; j<=n; ++j ){
		for( i=1; i<=n; ++i ){
			while( Viz[ nr ] )
				nr++;
			Viz[ nr ] = 1;
			El[i][j]=nr++;
		}
	}
	for( i=1; i<=n; ++i ){
		for( j=1; j<=n; ++j )
			printf("%d ",El[i][j]);
		printf("\n");
	}
	return 0;
}