Дистанционная подготовка: объясните в чем ошибка. на первых трех тестах пишет ошибка во время выполнения программы а 2 последних проходит
объясните в чем ошибка. на первых трех тестах пишет ошибка во время выполнения программы а 2 последних проходит
от Юрий Тюрин - Воскресенье 12 Январь 2020, 18:44
637. Маршрут(2)
  объясните в чем ошибка.
на первых трех тестах пишет ошибка во время выполнения программы а 2 последних проходит
using System;
using System.Collections.Generic;

namespace ConsoleApp3
{
class Program
{
static void Main(string[] args)
{

Queue och = new Queue();
int result = 0;
int p = 0;
string[] a = Console.ReadLine().Split();
int n = int.Parse(a[0]);
double k = double.Parse(a[1]);
double z = Math.Pow(4, k);
int[,] cord = new int[Convert.ToInt32(z), 4];
int[,] ar = new int[n, n];
for (int i = 0; i {
a = Console.ReadLine().Split();
for (int j = 0; j {
ar[i, j] = int.Parse(a[j]);
}
}
och.Enqueue(p);
cord[0, 2] = ar[0, 0];
result = cord[0, 2];
cord[0, 3] = 1;
while (och.Count != 0)
{
int q = och.Dequeue();
if (cord[q, 0] > 0)
{
p++;
cord[p, 0] = cord[q, 0] - 1;
cord[p, 1] = cord[q, 1];
cord[p, 2] = cord[q, 2] + ar[cord[p, 0], cord[p, 1]];
cord[p, 3] = cord[q, 3] + 1;
if (cord[p, 3] != k)
{
och.Enqueue(p);
}
else
{
result = Math.Max(result, cord[p, 2]);
}
}
if (cord[q, 0] {
p++;
cord[p, 0] = cord[q, 0] + 1;
cord[p, 1] = cord[q, 1];
cord[p, 2] = cord[q, 2] + ar[cord[p, 0], cord[p, 1]];
cord[p, 3] = cord[q, 3] + 1;
if (cord[p, 3] != k)
{
och.Enqueue(p);
}
else
{
result = Math.Max(result, cord[p, 2]);
}
}
if (cord[q, 1] > 0)
{
p++;
cord[p, 0] = cord[q, 0];
cord[p, 1] = cord[q, 1] - 1;
cord[p, 2] = cord[q, 2] + ar[cord[p, 0], cord[p, 1]];
cord[p, 3] = cord[q, 3] + 1;
if (cord[p, 3] != k)
{
och.Enqueue(p);
}
else
{
result = Math.Max(result, cord[p, 2]);
}
}
if (cord[q, 1] {
p++;
cord[p, 0] = cord[q, 0];
cord[p, 1] = cord[q, 1] + 1;
cord[p, 2] = cord[q, 2] + ar[cord[p, 0], cord[p, 1]];
cord[p, 3] = cord[q, 3] + 1;
if (cord[p, 3] != k)
{
och.Enqueue(p);
}
else
{
result = Math.Max(result, cord[p, 2]);
}
}
}
Console.WriteLine(result);
}
}
}