Pagini recente » Cod sursa (job #1930368) | Cod sursa (job #2495462) | Cod sursa (job #1719699) | Cod sursa (job #1719696) | Cod sursa (job #473015)
Cod sursa(job #473015)
# include <cstdio>
const char FIN[] = "tablete.in", FOU[] = "tablete.out" ;
int V[1005][1005] ;
int N, K ;
int main () {
freopen ( FIN, "r", stdin ) ;
freopen ( FOU, "w", stdout ) ;
scanf ( "%d %d", &N, &K ) ;
if ( ( K & 1 ) == 0 ) {
int nr = 0 ;
for ( int i = 1; i <= N; ++i ) {
for ( int j = 1; j <= K; ++j ) {
V[i][j] = ++nr ;
}
}
for ( int i = 1; i <= N; ++i ) {
for ( int j = K + 1; j <= N; ++j ) {
V[i][j] = ++nr ;
}
}
} else if ( ( N & 1 ) == 0 ) {
int nr = 0 ;
for ( int i = 1; i <= N; ++i ) {
for ( int j = 1; j <= K; ++j ) {
if ( j == K && ( nr & 1 ) == 0 ) {
V[i][j] = ++nr + 1 ;
} else if ( j == 1 && ( nr & 1 ) ) {
V[i][j] = nr++ ;
} else {
V[i][j] = ++nr ;
}
}
}
for ( int i = 1; i <= N; ++i ) {
for ( int j = K + 1; j <= N; ++j ) {
V[i][j] = ++nr ;
}
}
} else {
int nr = 0 ;
for ( int i = 1; i < N; ++i ) {
for ( int j = 1; j <= K; ++j ) {
if ( j == K && ( nr & 1 ) == 0 ) {
V[i][j] = ++nr + 1 ;
} else if ( j == 1 && ( nr & 1 ) ) {
V[i][j] = nr++ ;
} else {
V[i][j] = ++nr ;
}
}
}
nr = ( N - 1 ) * K ;
for ( int j = 1; j <= K; ++j ) {
if ( nr == N * K - 1 ) {
++nr ;
}
V[N][j] = ++nr ;
}
V[1][K + 1] = N * K , nr = N * K + 1 ;
for ( int i = 1; i <= N; ++i ) {
for ( int j = ( i == 1 ? K + 2 : K + 1 ); j <= N; ++j ) {
V[i][j] = ++nr ;
}
}
}
for ( int i = 1; i <= N; ++i, printf ( "\n" ) ) {
for ( int j = 1; j <= N; ++j ) {
printf ( "%d ", V[i][j] ) ;
}
}
return 0;
}