Pagini recente » Cod sursa (job #1816184) | Cod sursa (job #917980) | Cod sursa (job #1616739) | Cod sursa (job #1789450) | Cod sursa (job #717453)
Cod sursa(job #717453)
#include <fstream>
using namespace std;
ifstream f("piese.in"); ofstream g("piese.out");
int v[505][505];
int i, j, n, m, p;
void acopera (int x1, int y1, int x2, int y2){
int d, k;
p++;
k=min(x2-x1+1, y2-y1+1);
d=1;
while (d*2<=k) d*=2;
for (i=x1; i<x1+d; i++) for (j=y1; j<y1+d; j++) v[i][j]=p;
if (x1+d-1!=x2) acopera (x1+d, y1, x2, y1+d-1);
if (y1+d-1!=y2) acopera (x1, y1+d, x1+d-1, y2);
if (x1+d-1!=x2 && y1+d-1!=y2) acopera (x1+d, y1+d, x2, y2);
}
int main(){
f>>n>>m;
acopera (1,1, n, m);
g<<p<<"\n";
for (i=1; i<=n; i++){
for (j=1; j<=m; j++) g<<v[i][j]<<" ";
g<<"\n";
}
}