Cod sursa(job #1496714)

Utilizator Ruxandra985Nanu Ruxandra Laura Ruxandra985 Data 5 octombrie 2015 14:43:05
Problema Piese Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <stdio.h>
#include <stdlib.h>
int a[500][500];
int main()
{
    FILE *fin=fopen ("piese.in","r");
    FILE *fout=fopen ("piese.out","w");
    int m,n,ptrt,i,j,p2,l,c;
    fscanf (fin,"%d%d",&m,&n);
    // m linii n coloane
    ptrt=1;
    for (i=0;i<m;i++)
         for (j=0;j<n;j++){
              if (a[i][j]==0){
            // nu e niciun patrat acolo
               p2=1;
               while (p2+i-1<m && p2+j-1<n) p2*=2;
               p2/=2;
               // avem un patrat cu latura p2
               for (l=i;l<i+p2;l++)
                    for (c=j;c<j+p2;c++) a[l][c]=ptrt;
                ptrt++;

              }
          }
    fprintf (fout,"%d\n",ptrt-1);
    for (i=0;i<m;i++){
        for (j=0;j<n;j++)
            fprintf (fout,"%d ",a[i][j]);
      fprintf (fout,"\n");
    }
    return 0;
}