Pagini recente » Cod sursa (job #2298532) | Cod sursa (job #180948) | Cod sursa (job #1288900) | Cod sursa (job #2720992) | Cod sursa (job #323868)
Cod sursa(job #323868)
// piese.cpp : Defines the entry point for the console application.
//
#include <cstdio>
#include <iostream>
#include <cmath>
using namespace std;
int n,m,a,ture=1;
int e[501][501];
int po[10],p,c,fam=0,p2;
void put()
{
po[0]=1;
for(int i=1;i<=9;i++)
po[i]=2*po[i-1];
}
int main()
{
int d=0,j;
freopen("piese.in","r",stdin);
freopen("piese.out","w",stdout);
cin>>m>>n;
a=min(n,m);
put();
for(int i=0;i<=9;i++)
if(po[i]<=a)
p=po[i];
fam=p;
while(d<m)
{
for(int i=d+1;i<=d+p;i++)
{
j=0;
while(j<fam)
if(i==d+1)
{
e[i][++j]=ture;
if(j%p==0)
ture++;
}
else
e[i][++j]=e[i-1][j];
}
d=d+p;
while(p>m-d)
p=p/2;
}
for(int i=0;i<=9;i++)
if(po[i]<=n-p)
p2=po[i];
d=0;
while(d<m)
{
for(int i=d+1;i<=d+p2;i++)
{
j=fam;
while(j<n)
if(i==d+1)
{
e[i][++j]=ture;
if(j%p2==0)
ture++;
}
else
e[i][++j]=e[i-1][j];
}
d=d+p2;
while(p2>m-d)
p2=p2/2;
}
ture--;
cout<<ture<<endl;
for(int i=1;i<=m;i++)
{
for(int j=1;j<=n;j++)
cout<<e[i][j]<<' ';
cout<<endl;
}
return 0;
}