Pagini recente » Cod sursa (job #2042512) | Cod sursa (job #1983629) | Cod sursa (job #1571463) | Cod sursa (job #137488) | Cod sursa (job #604220)
Cod sursa(job #604220)
#include <stdio.h>
#define MAX 1001
int a[MAX][MAX], n, k;
void parpar();
void imparpar();
void parimpar();
void imparimpar();
void set();
void print();
void inter(int, int, int, int);
int main()
{
int i, j;
freopen("tablete.in", "r", stdin);
freopen("tablete.out", "w", stdout);
scanf("%d %d", &n, &k);
if(n%2 == 0 && k%2 == 0)
{
parpar();
}
if(n%2 == 1 && k%2 == 0)
{
imparpar();
}
if(n%2 == 0 && k%2 == 1)
{
parimpar();
}
if(n%2 == 1 && k%2 == 1)
{
imparimpar();
}
return 0;
}
void set()
{
int i, j, x=1;
for(i=1;i<=n;++i)
{
for(j=1;j<=n;++j)
{
a[i][j] = x++;
}
}
}
void print()
{
int i, j;
for(i=1;i<=n;++i)
{
for(j=1;j<=n;++j)
{
printf("%d ", a[i][j]);
}
printf("\n");
}
}
void inter(int i1, int j1, int i2, int j2)
{
int aux;
aux = a[i1][j1];
a[i1][j1] = a[i2][j2];
a[i2][j2] = aux;
}
void parpar()
{
int i, j, x=1;
set();
print();
}
void imparpar()
{
int i, j, x=0;
for(i=1;i<n;++i)
{
x++;
for(j=0;j<n;++j)
{
printf("%d ", x++);
}
printf("\n");
}
for(i=1;i<n;++i)
{
printf("%d ", i*(n+1));
}
printf("%d ", n*n);
}
void parimpar()
{
int i, j, x = 1;
set();
for(i=1;i<=n-1;i+=2)
{
for(j=1;j<k;++j)
{
a[i][j] = x++;
}
a[i][k] = x+1;
a[i+1][1] = x;
x += 2;
for(j=2;j<=k;++j)
{
a[i+1][j] = x++;
}
}
for(i=1;i<=n;++i)
{
for(j=k+1;j<=n;++j)
{
a[i][j] = x++;
}
}
print();
}
void imparimpar()
{
int i, j, x=1;
for(i=1;i<n-1;i+=2)
{
for(j=1;j<k;++j)
{
a[i][j] = x++;
}
a[i][k] = x+1;
a[i+1][1] = x;
x += 2;
for(j=2;j<=k;++j)
{
a[i+1][j] = x++;
}
}
for(j=1;j<k;++j)
{
a[n][j] = x++;
}
a[n][k] = n*k + 1;
x = n*k+1;
for(i=1;i<=n;++i)
{
for(j=k+1;j<=n;++j)
{
a[i][j] = x++;
}
}
a[1][k+1] = n*k;
print();
}