35922023-03-01 09:28:43AGergoRácsháló gráfcsharpIdőlimit túllépés 28/50580ms24844 KiB
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

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

            string[] be = Console.ReadLine().Split();

            int n = int.Parse(be[0]);
            int m = int.Parse(be[1]);

            int k = int.Parse(be[2]);

            int[,] dist = new int[n * m + 1, n * m + 1];

            for (int i = 1; i < n*m+1; i++)
            {
                for (int j = 1; j < n * m+1; j++)
                {
                    dist[i, j] = 201;
                }
            }

            int down = 0;
            int up = 0;
            int left = 0;
            int right = 0;

            for (int i = 1; i < n*m+1; i++)
            {
                if ((i-1)/m == 0)
                {
                    up = 0;
                    down = i + m;
                }
                else if ((i-1)/m == n-1)
                {
                    up = i - m;
                    down = 0;
                }
                else
                {
                    up = i - m;
                    down = i + m;
                }

                if (i % m == 1)
                {
                    left = 0;
                    right = i + 1;
                }
                else if (i % m == 0)
                {
                    left = i - 1;
                    right = 0;
                }
                else
                {
                    left = i - 1;
                    right = i + 1;
                }
                //Console.WriteLine(i + "-" + up + " " + down + " " + left + " " + right);

                dist[i, up] = 1;
                dist[up, i] = 1;
                dist[i, down] = 1;
                dist[down, i] = 1;
                dist[i, left] = 1;
                dist[left, i] = 1;
                dist[i, right] = 1;
                dist[right, i] = 1;
            }

            int largest = 0;
            List<int> ll = new List<int>();

            for (int i = 0; i < k; i++)
            {
                largest = 0;
                be = Console.ReadLine().Split();

                dist[int.Parse(be[0]), int.Parse(be[1])] = 1;
                dist[int.Parse(be[1]), int.Parse(be[0])] = 1;


                for (int sta = 1; sta < n*m+1; sta++)
                {
                    for (int end = 1; end < n*m+1; end++)
                    {
                        for (int koz = 1; koz < n*m+1; koz++)
                        {
                            if (sta == end || dist[sta,end] == 1)
                            {
                                break;
                            }

                            if (dist[sta,end] > dist[sta,koz] + dist[koz, end]) //problema -> előbb nezi meg d[4,9]-t mint 
                            {
                                dist[sta, end] = dist[sta, koz] + dist[koz, end];
                                dist[end, sta] = dist[sta, koz] + dist[koz, end];
                            }
                        }
                    }
                }

                for (int x = 1; x < n*m+1; x++)
                {
                    for (int y = x + 1; y < n*m+1; y++)
                    {
                        if (dist[x,y] > largest)
                        {
                            largest = dist[x, y];
                        }
                    }
                }

                //Console.WriteLine(largest);
                ll.Add(largest);
            }

            foreach (var item in ll)
            {
                Console.WriteLine(item);
            }

            Console.ReadLine();
        }
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base28/50
1Elfogadva0/028ms20700 KiB
2Időlimit túllépés0/0575ms4548 KiB
3Elfogadva2/230ms21932 KiB
4Elfogadva2/232ms22272 KiB
5Elfogadva2/232ms22684 KiB
6Elfogadva2/232ms22372 KiB
7Elfogadva2/2134ms22724 KiB
8Hibás válasz0/2133ms22780 KiB
9Elfogadva2/2134ms22872 KiB
10Elfogadva2/257ms22884 KiB
11Elfogadva2/2134ms23244 KiB
12Időlimit túllépés0/2564ms7076 KiB
13Időlimit túllépés0/3555ms6816 KiB
14Elfogadva3/3165ms23800 KiB
15Időlimit túllépés0/3577ms7460 KiB
16Hibás válasz0/3140ms24696 KiB
17Időlimit túllépés0/3580ms7836 KiB
18Elfogadva3/3238ms24424 KiB
19Hibás válasz0/334ms24784 KiB
20Elfogadva3/339ms24844 KiB
21Elfogadva3/3321ms24648 KiB
22Időlimit túllépés0/3565ms8400 KiB