Pagini recente » Cod sursa (job #1655361) | Cod sursa (job #714905) | Cod sursa (job #981062) | Cod sursa (job #1442527) | Cod sursa (job #2540722)
#include <fstream>
#include <iostream>
#define VAL 500
using namespace std;
ifstream f("piese.in");
ofstream g("piese.out");
int n, m, sol[VAL+10][VAL+10], nr;
void umple(int i1, int j1, int i2, int j2, int nr)
{ for(int i=i1; i<=i2; i++)
for(int j=j1; j<=j2; j++) sol[i][j] = nr;
}
int main()
{
f >> n >> m;
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
if(!sol[i][j])
{ int put2 = 1;
while(i+put2-1 <= n && j+put2-1 <= m) put2 = put2 * 2;
put2 /= 2;
umple(i, j, i+put2-1, j+put2-1, ++nr);
}
g << nr << '\n';
for(int i=1; i<=n; i++)
{ for(int j=1; j<=m; j++) g << sol[i][j] << ' ';
g << '\n';
}
return 0;
}