Cod sursa(job #2486857)

Utilizator denmirceaBrasoveanu Mircea denmircea Data 3 noiembrie 2019 16:33:12
Problema Piese Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.82 kb
#include <bits/stdc++.h>
#define inf 2000000000
#define dim 515
using namespace std;
ifstream fin("piese.in");
ofstream fout("piese.out");
int nr,n,m;
int s[dim][dim],i,j;
void increment(int ls,int cs,int lj,int cj){
int j;
nr++;
for(;ls<=lj;ls++){
    for(j=cs;j<=cj;j++)
        s[ls][j]=nr;
}
}
void solve(int ls,int cs,int lj,int cj){
    if(ls>lj||cs>cj){
        return;
    }
    ///linie sus coloana sus linie jos coloana jos
    int p=1;
    while(p<=min(lj-ls+1,cj-cs+1)){
        p*=2;
    }
    p>>=1;
    increment(ls,cs,ls+p-1,cs+p-1);

    solve(ls,cs+p,ls+p-1,cj);
    solve(ls+p,cs,lj,cs+p-1);
    solve(ls+p,cs+p,lj,cj);
}
int main(){
    fin>>n>>m;
    solve(1,1,n,m);
    fout<<nr<<"\n";
    for(i=1;i<=n;i++,fout<<"\n")
    for(j=1;j<=m;j++){
        fout<<s[i][j]<<" ";
    }
}