Pagini recente » Cod sursa (job #617185) | Cod sursa (job #718808) | Cod sursa (job #895651) | Cod sursa (job #887285) | Cod sursa (job #700786)
Cod sursa(job #700786)
using namespace std;
#include<cstdio>
#define MAX 305
int a[MAX][MAX];
int main()
{
freopen("placare.in","r",stdin);
freopen("placare.out","w",stdout);
int n,m,i,j,ok,x,y,w;
scanf("%d %d",&n,&m);
ok=n*m;
x=1;y=1;
while(ok)
{
scanf("%d",&w);
if(w==1)
{
a[x][y]=1;
a[x][0]++;
a[0][y]++;
y++;
ok--;
}
else
if(w>1) // completare pe lungime
{
for(j=y;j<=y+w-1;j++)
{
a[x][j]=w;
a[0][j]++;
}
a[i][0]=a[1][0]+w;
y=y+w;
ok=ok-w;
}
else
if(w<0) // completare pe inaltime
{
for(i=x;i<=x-w-1;i++)
{
a[i][y]=-w;
a[i][0]++;
}
a[0][y]=a[0][y]-w;
y++;
ok=ok+w;
}
if(y==m+1)
do
{
x++;
if(a[x][0]<m)
y=a[x][0]+1;
else
y=1;
}while(a[x][y]);
}
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}