Cod sursa(job #1981622)

Utilizator mari2001Maria Ionescu mari2001 Data 16 mai 2017 12:00:32
Problema Tablete Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <cstdio>
using namespace std;
int Niz[1005][1005],i,j,nr,k,n,p;
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;
Niz[i][j]=nr++;
}
}
if( nr&1 )
{
for(i=1; i<=n; ++i)
{
for(j=k-1; j<=k; ++j)
{
while( Viz[ nr ] )
nr++;
Viz[ nr ] = 1;
Niz[i][j]=nr++;
}
}
for(j=k+1; j<=n; ++j)
{
for(i=1; i<=n; ++i)
{
while( Viz[ nr ] )
nr++;
Viz[ nr ] = 1;
Niz[i][j]=nr++;
}
} 
}else{
Viz[ nr ] = 1;
Niz[ 1 ][ k-1 ] = nr;
j=k;
p=nr+2;
for(i=1; i<=n; ++i)
{
Viz[ p ] = 1;
Niz[ i ][ k ] = p;
p+=2;
}
j=k-1;
for(i=2; i<=n; ++i)
{
while( Viz[ nr ] )
nr++;
Niz[ i ][ j ] = nr;
Viz[ nr++ ] = 1;
}
for(i=1; i<=n; ++i)
{
for(j=k+1; j<=n; ++j)
{
while( Viz[ nr ] )
nr++;
Niz[i][j]=nr;
Viz[nr++]=1;
}
}
}
for(i=1; i<=n; ++i)
{
for(j=1; j<=n; ++j)
printf("%d ",Niz[i][j]);
printf("\n");
}
return 0;
}