Cod sursa(job #2939127)
Utilizator | Data | 13 noiembrie 2022 01:13:48 | |
---|---|---|---|
Problema | Piese | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.89 kb |
#include <fstream>
#define nmax 505
using namespace std;
int n,m,mn,ct,v[nmax][nmax],d[9]={256,128,64,32,16,8,4,2,1};
int main()
{
ifstream f ("piese.in");
ofstream g ("piese.out");
f>>n>>m;
for (int i=1; i<=n; i++)
{
for (int j=1; j<=m; j++)
{
if (v[i][j]==0)
{
ct++;
mn=min(n-i+1,m-j+1);
for (int pi=0; pi<=8; pi++)
if (mn>=d[pi])
{
mn=d[pi];
break;
}
for (int i1=i; i1<=i+mn-1; i1++)
for (int j1=j; j1<=j+mn-1; j1++)
v[i1][j1]=ct;
}
}
}
g<<ct<<'\n';
for (int i=1; i<=n; i++)
{
for (int j=1; j<=m; j++)
g<<v[i][j]<<' ';
g<<'\n';
}
}