Pagini recente » Cod sursa (job #1568546) | Cod sursa (job #147767) | Cod sursa (job #2683333) | Cod sursa (job #1202168) | Cod sursa (job #2030850)
#include <fstream>
using namespace std;
ifstream fin ("piese.in");
ofstream fout("piese.out");
int n[501], m[501], x[501], y[501], u, p, ic, jc, s, k, i, j, v[501][501], a, b;
int main(){
fin>>n[1]>>m[1];
a=n[1];
b=m[1];
x[1]=0;
y[1]=0;
u=1;
while(p<u){
p++;
ic=x[p];
jc=y[p];
s=min(m[p], n[p]);
k=1;
while(s>=k*2){
k*=2;
}
for(i=ic; i<ic+k; i++){
for(j=jc; j<jc+k; j++){
v[i][j]=p;
}
}
if(k<n[p]){
u++;
n[u]=n[p]-k;
m[u]=k;
x[u]=ic+k;
y[u]=jc;
}
if(k<m[p]){
u++;
n[u]=k;
m[u]=m[p]-k;
x[u]=ic;
y[u]=jc+k;
}
if(k<n[p] && k<m[p]){
u++;
n[u]=n[p]-k;
m[u]=m[p]-k;
x[u]=ic+k;
y[u]=jc+k;
}
}
fout<<p<<"\n";
for(i=0; i<a; i++){
for(j=0; j<b; j++){
fout<<v[i][j]<<" ";
}
fout<<"\n";
}
}