Привет, Всем!
Хотел бы попросить совета (помощи) по данной задачке. Ошибка выдается в тесте №12. Попытался добить 7 (урезанных строк) разными вариантами, но все равно ошибка выдается. Код ниже:
static void Main(string[] args)
{
// StreamReader ttt = new StreamReader("C:\\1.txt");
String[] sInput = Console.ReadLine().Split(' ');
int iY = Convert.ToInt32(sInput[0]);
int iX = Convert.ToInt32(sInput[1]);
int iK = Convert.ToInt32(sInput[2]);
String[] iDataLab = new String[iY];
int iMaxData = -1;
for (int i = 0; i < iY; i++)
iDataLab[i] = Console.ReadLine();
String iCommand = Console.ReadLine();
int[,] bArrayRoom = new int[iY, iX];
for (int i = 0; i < iY; i++)
{
for (int j = 0; j < iX; j++)
{
switch (iDataLab[i][j])
{
case '#':
bArrayRoom[i, j] = 0;
break;
case '.':
bArrayRoom[i, j] = 1;
break;
case 'E':
bArrayRoom[i, j] = 2;
break;
}
}
}
int[,] bCommandStep = new int[iCommand.Length, 2];
for (int i = 0; i < iCommand.Length; i++)
{
switch (iCommand[i])
{
case 'U':
bCommandStep[i, 0] = -1;
bCommandStep[i, 1] = 0;
break;
case 'D':
bCommandStep[i, 0] = 1;
bCommandStep[i, 1] = 0;
break;
case 'L':
bCommandStep[i, 0] = 0;
bCommandStep[i, 1] = -1;
break;
case 'R':
bCommandStep[i, 0] = 0;
bCommandStep[i, 1] = 1;
break;
}
}
int iIndex = 0;
int iCurX = 0;
int iCurY = 0;
bool bNotStep = false;
for (int iBeginY = 0; iBeginY < iY && !bNotStep; iBeginY++)
{
for (int iBeginX = 0; iBeginX < iX && !bNotStep; iBeginX++)
{
switch (bArrayRoom[iBeginY, iBeginX])
{
case 0:
break;
case 1:
iCurX = iBeginX;
iCurY = iBeginY;
iIndex = 0;
bNotStep = true;
for (int i = 0; i < iCommand.Length; i++)
{
iCurY += bCommandStep[i, 0];
iCurX += bCommandStep[i, 1];
if (iCurY < 0 || iCurY > iY - 1 || bArrayRoom[iCurY, iCurX] == 0)
iCurY -= bCommandStep[i, 0];
if (iCurX < 0 || iCurX > iX - 1 || bArrayRoom[iCurY, iCurX] == 0)
iCurX -= bCommandStep[i, 1];
iIndex++;
if (bArrayRoom[iCurY, iCurX] == 2)
{
bNotStep = false;
if (iIndex > iMaxData)
iMaxData = iIndex;
break;
}
}
break;
case 2:
bNotStep = false;
if (iIndex > iMaxData)
iMaxData = iIndex;
break;
}
}
}
if (bNotStep)
iMaxData = -1;
Console.WriteLine(iMaxData);
}
Всем Спасибо за внимание!!!