Cod sursa(job #597723)

Utilizator Smaug-Andrei C. Smaug- Data 23 iunie 2011 01:20:45
Problema Tablete Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <cstdio>

#define MAXN 1005

int main(){

  freopen("tablete.in", "r", stdin);
  freopen("tablete.out", "w", stdout);

  int N, K, i, a, j, k;
  static int S[MAXN][MAXN];

  scanf("%d%d", &N, &K);
  
  a=0;
  if(K%2 == 0 && N%2 == 0)
    for(i=1; i<=N; i++)
      for(j=1; j<=N; j++)
	S[i][j]=++a;
  else if(K%2 && N%2 == 0){
    for(j=1; j<K-1; j++)
      for(i=1; i<=N; i++)
	S[i][j]=++a;
    for(i=1; i<=N; i++)
      for(j=K-1; j<=K; j++)
	S[i][j]=++a;
    for(i=1; i<=N; i++)
      for(j=K+1; j<=N; j++)
	S[i][j]=++a;
  } 
  else if(K%2 == 0 && N%2){
    for(j=1; j<K-1; j++)
      for(i=1; i<=N; i++)
	S[i][j]=++a;
    for(i=1; i<=N; i++)
      for(j=K-1; j<=K; j++)
	S[i][j]=++a;
    for(i=1; i<=N; i++)
      for(j=K+1; j<=N; j++)
	S[i][j]=++a;
  }

  for(i=1; i<=N; i++){
    for(j=1; j<=N; j++)
      printf("%d ", S[i][j]);
    printf("\n");
  }

  return 0;

}