Cod sursa(job #2152712)

Utilizator DruffbaumPopescu Vlad Druffbaum Data 5 martie 2018 19:05:13
Problema Piese Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <cstdio>

#define MAXN 500

int a[MAXN][MAXN];

int main() {
  FILE *fin, *fout;
  int n, m, k, val;
  fin = fopen("piese.in", "r");
  fscanf(fin, "%d%d", &n, &m);
  fclose(fin);
  val = 0;
  for (int i = 0; i < n; ++i) {
    for (int j = 0; j < m; ++j) {
      if (!a[i][j]) {
        k = 1;
        while (i + 2 * k - 1 < n && j + 2 * k - 1 < m) {
          k *= 2;
        }
        ++val;
        for (int l = i; l < i + k; ++l) {
          for (int c = j; c < j + k; ++c) {
            a[l][c] = val;
          }
        }
      }
    }
  }
  fout = fopen("piese.out", "w");
  fprintf(fout, "%d\n", val);
  for (int i = 0; i < n; ++i) {
    for (int j = 0; j < m; ++j) {
      fprintf(fout, "%d ", a[i][j]);
    }
    fprintf(fout, "\n");
  }
  fclose(fout);
  return 0;
}