Cod sursa(job #2645348)

Utilizator tryharderulbrebenel mihnea stefan tryharderul Data 27 august 2020 20:48:28
Problema Piese Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <iostream>
#include <stdio.h>

using namespace std;

int n,m,i,j,s;
int v[503][503];

int ok(int x,int y){
    return (x>=1 && x<=n && y>=1 && y<=m);
}

void fil(int x,int y){
    int p=1,i,j;

    while(ok(x+p-1,y+p-1)){
        p=p<<1;
    }

    p=p>>1;

    for(i=x;i<=x+p-1;i++)
        for(j=y;j<=y+p-1;j++)
            v[i][j]=s;

}

int main()
{
    freopen("piese.in","r",stdin);
    freopen("piese.out","w",stdout);

    scanf("%d%d",&n,&m);

    for(i=1;i<=n;i++)
        for(j=1;j<=m;j++){
            if(!v[i][j]){
                s++;
                fil(i,j);
            }
        }

    printf("%d\n",s);
    for(i=1;i<=n;i++){
        for(j=1;j<=m;j++)
            printf("%d ",v[i][j]);

        printf("\n");

    }

    return 0;
}