Nu aveti permisiuni pentru a descarca fisierul grader_test10.in
Cod sursa(job #237350)
| Utilizator | Data | 29 decembrie 2008 16:34:51 | |
|---|---|---|---|
| Problema | Tablete | Scor | 20 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 1.44 kb |
#include <stdio.h>
long n,k,a[1001][1001];
void parpar()
{
int i,j,cate=0;
for (i=1;i<=n;i++)
{
for (j=1;j<=k;j++)
{
a[i][j]=++cate;
}
}
for (i=1;i<=n;i++)
for (j=k+1;j<=n;j++)
a[i][j]=++cate;
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
printf("%d ",a[i][j]);
printf("\n");
}
}
void parimp()
{
int i,j,cate=0;
for (i=1;i<=n;i++)
{
for (j=1;j<k;j++)
{
a[i][j]=++cate;
}
a[i][j]=++cate+1;
i++;
cate-=2;
for (j=1;j<k;j++)
{
a[i][j]=(cate+=2);
}
a[i][j]=++cate;
}
for (i=1;i<=n;i++)
for (j=k+1;j<=n;j++)
a[i][j]=++cate;
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
printf("%ld ",a[i][j]);
printf("\n");
}
}
void impimp()
{
int i,j,cate=0;
for (i=1;i<=n-1;i++)
{
for (j=1;j<k;j++)
{
a[i][j]=++cate;
}
a[i][j]=++cate+1;
i++;
cate-=2;
for (j=1;j<k;j++)
{
a[i][j]=(cate+=2);
}
a[i][j]=++cate;
}
//aici fac ultima linie
cate=(n-1)*k;
for (j=1;j<k;j++)
a[n][j]=++cate;
cate=n*k+1;
a[n][j]=cate;
cate--;
for (i=1;i<=n;i++)
for (j=k+1;j<=n;j++)
a[i][j]=++cate;
for (i=1;i<=n;i++)
{
for (j=1;j<=n;j++)
printf("%ld ",a[i][j]);
printf("\n");
}
}
int main()
{
freopen("tablete.in","r",stdin);
freopen("tablete.out","w",stdout);
scanf("%ld %ld",&n,&k);
if (k%2==0)
parpar();
else
if (n%2==0 && k%2==1)
parimp();
else
impimp();
return 0;
}