Pagini recente » Cod sursa (job #408788) | Cod sursa (job #1734825) | Cod sursa (job #2183973) | Cod sursa (job #974196) | Cod sursa (job #1573354)
#include<stdio.h>
#include<iostream>
using namespace std;
#pragma warning(push)
#pragma warning(disable: 4996)
int a[1001][1001];
int b[1001][1001];
int N, K;
int nr_sarit;
bool am_sarit = false;
int main()
{
freopen("tablete.in", "r", stdin);
freopen("tablete.out", "w", stdout);
cin >> N >> K;
int nr_curent = 1;
for (int i = 1; i <= N; ++i)
{
for (int j = 1; j <= N; ++j)
{
if (j == 1 && am_sarit)
{
b[i][j] = nr_sarit;
continue;
}
else
{
if (j != K)
{
b[i][j] = nr_curent;
nr_curent++;
}
else
{
if (nr_curent % 2 == 0)
{
b[i][j] = nr_curent;
am_sarit = false;
nr_curent++;
}
else
{
b[i][j] = nr_curent + 1;
nr_sarit = nr_curent;
am_sarit = true;
nr_curent += 2;
}
}
}
}
}
am_sarit = false;
// in cazul in care trebuia pus pe penultima linie ultima coloana N^2
// pentru ca altfel e posibil sa trebuiasca sa sarim un numar si pe ultima linie ca sa avem par
if (b[N][N] > N * N)
{
nr_curent = 1;
for (int i = 1; i <= N; ++i)
{
for (int j = 1; j <= N; ++j)
{
if (j == 1 && am_sarit)
{
b[i][j] = nr_sarit;
continue;
}
else if (i == N - 1 && j == N)
{
b[i][j] = N * N;
}
else
{
if (j != K)
{
b[i][j] = nr_curent;
nr_curent++;
}
else
{
if (nr_curent % 2 == 0)
{
b[i][j] = nr_curent;
am_sarit = false;
nr_curent++;
}
else
{
b[i][j] = nr_curent + 1;
nr_sarit = nr_curent;
am_sarit = true;
nr_curent += 2;
}
}
}
}
}
}
for (int i = 1; i <= N; ++i)
{
for (int j = 1; j <= N; ++j)
{
cout << b[i][j] << " ";
}
cout << endl;
}
return 0;
}
#pragma warning(pop)