Pagini recente » Statistici Dumitrescu Toma Ioan (DumitrescuToma104) | Istoria paginii utilizator/hennkka | Autentificare | Istoria paginii utilizator/guzglete | Cod sursa (job #125440)
Cod sursa(job #125440)
#include<stdio.h>
long x[510][510];
long lg[10],lt[10],n,m,nr;
typedef struct {int inc,sf;}TINT;
TINT l[510],c[510];
void read()
{
scanf("%ld%ld",&m,&n);
}
void descb2(long x,long p[])
{
long k,j;
int i;
j=0;
for (i=0;i<=10;i++)
{
k=1;
k=(k<<i);
if (k & x)
{
p[++j]=k;
}
}
p[0]=j;
}
void rez()
{
long i,j;
long np=0,min,lim,k,lc,cc;
int w;
i=1;
j=1;
while (i<=lg[0])
{j=1;
while (j<=lt[0])
{
if (lg[i]<lt[j])
min=1;
else min=2;
if (min==1)
{
lim=(lt[j]/lg[i]);
nr+=lim;
k=1;
lc=l[j].inc;
while (k<=lim)
{
np++;
for (w=1;w<=lg[i];w++)
{for (cc=c[i].inc;cc<=c[i].sf;cc++)
{x[lc][cc]=np;}
lc++;}
k++;
}
}
else {
lim=(lg[i]/lt[j]);
nr+=lim;
k=1;
cc=c[i].inc;
while (k<=lim)
{
np++;
for (w=1;w<=lt[j];w++)
{for (lc=l[j].inc;lc<=l[j].sf;lc++)
{x[lc][cc]=np;}
cc++;}
k++;
}
}
j++;
}
i++;
}
}
void afisare()
{
int i,j;
printf("%ld\n",nr);
for (i=1;i<=m;i++)
{
for (j=1;j<=n;j++)
printf("%ld ",x[i][j]);
printf("\n");
}
}
int main()
{
freopen("piese.in","r",stdin);
freopen("piese.out","w",stdout);
read();
descb2(m,lt);
long i;
i=1;
l[0].inc=l[0].sf=0;
while (i<=lt[0])
{l[i].inc=l[i-1].sf+1;
l[i].sf=l[i].inc+lt[i]-1;
i++;
}
descb2(n,lg);
i=1;
c[0].inc=c[0].sf=0;
while (i<=lg[0])
{c[i].inc=c[i-1].sf+1;
c[i].sf=c[i].inc+lg[i]-1;
i++;
}
rez();
afisare();
fcloseall();
return 0;
}