Sunglasses - некоректно оценяване от Judge
Това е кодът ми за Sunglasses.
using System;
class Sunglasses
{
static void Main()
{
int n = int.Parse(Console.ReadLine());
int width = 5 * n;
char[,] sunglasses = new char[width, n];
for(int i = 0; i<2*n; i++)
{
sunglasses[i,0] = '*';
sunglasses[i, (n - 1)] = '*';
}
for (int i = 0; i < n; i++)
{
sunglasses[0, i] = '*';
sunglasses[(2*n - 1), i] = '*';
}
for (int i = (width-1); i>=3*n; i--)
{
sunglasses[i, 0] = '*';
sunglasses[i, (n-1)] = '*';
}
for (int i = 0; i < n; i++)
{
sunglasses[3*n, i] = '*';
sunglasses[width-1, i] = '*';
}
for(int i=1; i<(2*n-1); i++)
{
for (int j = 1; j < (n - 1); j++)
{
sunglasses[i, j] = '/';
}
}
for (int i = (3*n+1); i < (width - 1); i++)
{
for (int j = 1; j < (n - 1); j++)
{
sunglasses[i, j] = '/';
}
}
for (int i = 2 * n; i < 3 * n; i++)
{
sunglasses[i, (n / 2)] = '|';
}
for(int j = 0; j<n; j++)
{
for(int i = 0; i<5*n; i++)
{
Console.Write(sunglasses[i,j]);
}
Console.WriteLine();
}
}
}
На конзолата излиза перфектно. В системата за оценяване ми отчита грешка. Там някак си "сплесква" двете стъкла едно до друго и рамката стърчи в дясно.
Моето обяснение е следното - не задавам никакви стойности на char масива за разстоянието между стъклата и съответно системата им дава стойност null. null се печата като празно пространство или интервал в конзолата, но някак си judge системата не го възприема даже като празно пространство и трупа едно върху друго.
В случая смятам, че това е грешка на системата. Има логика понеже null не е интервал, но самият факт, че дава различен аутпут от конзолата, е проблем. За домашните както и да е, но ми е интересно какво би се случило при подобна ситуация на изпита. Има ли вариант да поискаме преразглеждане на точките ни от дадена задача?
И аз реших задачата по този доста лесен начин чрез for цикъл и в него if с 3 възможности. Може да видите кода тук - Sunglasses.