Cod sursa(job #2554421)

Utilizator Stefan_PiscuPiscu Stefan Constantin Stefan_Piscu Data 22 februarie 2020 21:29:54
Problema Piese Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <bits/stdc++.h>
using namespace std;

ifstream fin("piese.in");
ofstream fout("piese.out");

int sol[502][502], n, m;

void lol(int x1, int y1, int x2, int y2, int val){
  for(int i=x1;i<=x2;++i){
    for(int j=y1;j<=y2;++j){
      sol[i][j]=val;
    }
  }
}

void lol2(int &x, int &y){
  int p2=1;
  while(x+p2-1<=n&&y+p2-1<=m){
    p2*=2;
  }
  p2/=2;
  x=x+p2-1;
  y=y+p2-1;
}

int main()
{
  fin>>n>>m;
  int cnt=0;
  for(int i=1;i<=n;++i){
    for(int j=1;j<=m;++j){
      if(!sol[i][j]){
        int i2=i, j2=j;
        lol2(i2, j2);
        cnt++;
        lol(i, j, i2, j2, cnt);
      }
    }
  }
  for(int i=1;i<=n;++i){
    for(int j=1;j<=m;++j){
      fout<<sol[i][j]<<" ";
    }
    fout<<"\n";
  }
  return 0;
}