Cod sursa(job #2178189)

Utilizator DjokValeriu Motroi Djok Data 19 martie 2018 11:19:22
Problema Tablete Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#pragma GCC optimize("Ofast,unroll-loops,no-stack-protector")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
#include <bits/stdc++.h>
using namespace std;

const int N = 1005;

int i, j, n, k, a[N][N], l = 1;
bool used[N * N];

int getNextEven(int poz) {
  while(1) {
    if(used[poz] || (poz & 1)) ++poz;
    else break;
  }
  return poz;
}

int main() {
  freopen("tablete.in", "r", stdin);
  freopen("tablete.out", "w", stdout);
  scanf("%d %d", &n, &k);
  for(i = 1; i <= n; ++i) {
    for(j = 1; j < k; ++j) {
      while(used[l]) ++l;
      a[i][j] = l++;
      used[l - 1] = 1;
    }
    a[i][k] = getNextEven(l);
    used[a[i][k]] = 1;
  }

  for(i = 1; i <= n; ++i)
    for(j = k + 1; j <= n; ++j) {
      while(used[l]) ++l;
      a[i][j] = l++;
      used[l - 1] = 1;
    }

  for(i = 1; i <= n; ++i)
    for(j = 1; j <= n; ++j)
      printf("%d%c", a[i][j], j == n ? '\n' : ' ');

  return 0;
}