This is the problem. https://dunjudge.me/analysis/problems/838/. Essentially its to create a square with layers that keep increasing like so.
1 1 1 1 1 1 1
1 2 2 2 2 2 1
1 2 3 3 3 2 1
1 2 3 4 3 2 1
1 2 3 3 3 2 1
1 2 2 2 2 2 1
1 1 1 1 1 1 1
I have already figured out the logic and have implemented it myself. I can replicate the testcase and tried to work out some examples.
#include <bits/stdc++.h>
using namespace std;
int f(int n)
{
return -1 + 2 * n;
}
int main()
{
int n = 0;
cin >> n;
for (int i = 1; i < n + 1; i++)
{
for (int k = 1; k < i; k++)
{
cout << k << ' ';
}
if (i == 1)
{
for (int j = 0; j < 2 * n - 1; j++)
{
cout << i << ' ';
}
}
else if (i > 1)
{
for (int j = 0; j < 2 * n - f(i); j++)
{
cout << i << ' ';
}
}
for (int k = i - 1; k > 0; k--)
{
if (k == i - 1) {
cout << i << ' ';
} else {
cout << ' ' << i;
}
}
cout << endl;
}
for (int w = n - 1; w > 0; w--)
{
for (int k = 1; k < w; k++)
{
cout << k << ' ';
}
if (w == 1)
{
for (int s = 2 * n - 1; s > 0; s--)
{
cout << w << ' ';
}
}
else if (w > 1)
{
for (int j = 0; j < 2 * n - f(w); j++)
{
cout << w << ' ';
}
}
for (int k = w - 1; k > 0; k--)
{
if (k == w - 1) {
cout << w << ' ';
} else {
cout << ' ' << w;
}
}
cout << endl;
}
return 0;
}
However it is always giving me a so called presentation error whilst I can match the sample case. Hence I am not sure how to fix my answer.