Pagini recente » Rating Arun KG (kgarun) | Cod sursa (job #2359976) | Cod sursa (job #218852) | Rating Ionesei Gabriel (Horendus) | Cod sursa (job #1172158)
#include <cstdio>
using namespace std;
const int nmax = 1006;
int ramas, nr, n, k, mat[nmax][nmax], m[nmax*nmax];
int main(){
int player_unu=0;
freopen("tablete.in", "r", stdin);
freopen("tablete.out", "w", stdout);
scanf("%d %d", &n, &k);
if (k % 2 == 0)
nr = k;
else{
nr = (k/2 + 1)*2;
ramas = nr - k;
}
mat[1][k] = nr;
m[nr] = 1;
for(int i = 1; i<=n-1; i++){
if(ramas==0)
{
if (k%2==0)
{
nr += k;
mat[i+1][k] = nr;
m[nr] = 1;
ramas = 0;
}
else
{
nr += k+1;
mat[i+1][k] = nr;
m[nr] = 1;
ramas = 1;
}
}
else
{
nr += k-1;
mat[i+1][k] = nr;
m[nr] = 1;
ramas = 0;
}
}
nr = 1;
for(int i = 1; i<=n; i++)
for(int j = 1; j<=k-1; j++)
{
while (m[nr] == 1)
nr++;
mat[i][j] = nr;
nr++;
}
nr = n*n;
for (int i = n; i>=1; i--)
for (int j = n; j>=k+1; j--)
{
while (m[nr]==1)
nr--;
mat[i][j] = nr;
nr--;
}
for (int i = 1; i<=n; i++)
{
for (int j = 1; j<=n; j++)
printf("%d ", mat[i][j]);
printf("\n");
}
return player_unu;
}