7993 2024. 01. 12 09:46:20 Dominik A lehető legkevesebb átszállás (50 pont) csharp Hibás válasz 9/50 79ms 30456 KiB
using System;

namespace atszallasok
{
    class Program
    {
        static int[] Findlongest(int indulo, int[,] vonatallomasok,int N)
        {
            int[] longestdata = new int[3];
            longestdata[0] = -1;
            longestdata[1] = -1;
            for (int i = 0; i < N; i++)
            {
                if (vonatallomasok[i, 0] == indulo)
                {
                    longestdata[0] = vonatallomasok[i, 1] - vonatallomasok[i, 0];
                    longestdata[1] = vonatallomasok[i,1];
                    longestdata[2] = i+1;
                }
                else if (vonatallomasok[i,1]>indulo&&vonatallomasok[i,0]<=indulo)
                {
                    longestdata[0] = vonatallomasok[i, 1] - vonatallomasok[i, 0];
                    longestdata[1] = vonatallomasok[i, 1];
                    longestdata[2] = i+1;
                }
            }
            return longestdata;
        }

        static void Main(string[] args)
        {
            string[] vonatinfo = Console.ReadLine().Split(' ');
            int N = int.Parse(vonatinfo[0]);
            int allomasdb = int.Parse(vonatinfo[1]);
            int[,] vonatallomasok = new int[N, 2];
            for (int i = 0; i < N; i++)
            {
                string[] line = Console.ReadLine().Split(' ');
                vonatallomasok[i, 0] = int.Parse(line[0]);
                vonatallomasok[i, 1] = int.Parse(line[1]);
            }
            int megallok = 0;
            int[] megalloid = new int[N];
            int[] trainid = new int[N];
            int lateststop=1;
            while (true)
            {
                int[] longestdata = Findlongest(lateststop,vonatallomasok,N);
                lateststop = longestdata[1];
                megalloid[megallok] = lateststop;
                trainid[megallok] = longestdata[2];
                megallok++;
                if (lateststop==-1||lateststop==allomasdb)
                {
                    break;
                }
            }
            if (megalloid[megallok]==-1||megalloid[megallok-1]!=allomasdb)
            {
                Console.WriteLine(-1);
            }
            else
            {
                Console.WriteLine((megallok-1));
                string hasznaltvonatid = string.Empty;
                for (int i = 0; i < megallok; i++)
                {
                    hasznaltvonatid += trainid[i];
                    if (megallok!=i+1)
                    {
                        hasznaltvonatid += " ";
                    }
                }
                Console.WriteLine(hasznaltvonatid);
            }
            Console.ReadKey();
        }
    }
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 9/50
1 Elfogadva 0/0 28ms 20964 KiB
2 Hibás válasz 0/0 78ms 27868 KiB
3 Elfogadva 1/1 28ms 21480 KiB
4 Futási hiba 0/1 29ms 21192 KiB
5 Hibás válasz 0/2 28ms 22408 KiB
6 Futási hiba 0/2 30ms 21848 KiB
7 Hibás válasz 0/2 30ms 23116 KiB
8 Hibás válasz 0/2 30ms 23236 KiB
9 Hibás válasz 0/2 32ms 23568 KiB
10 Hibás válasz 0/2 34ms 24376 KiB
11 Hibás válasz 0/2 41ms 24920 KiB
12 Hibás válasz 0/2 43ms 26008 KiB
13 Hibás válasz 0/2 32ms 24008 KiB
14 Hibás válasz 0/2 35ms 24780 KiB
15 Hibás válasz 0/2 39ms 25500 KiB
16 Hibás válasz 0/2 45ms 25952 KiB
17 Hibás válasz 0/2 59ms 28440 KiB
18 Hibás válasz 0/2 65ms 28896 KiB
19 Hibás válasz 0/2 71ms 29100 KiB
20 Hibás válasz 0/2 74ms 29880 KiB
21 Hibás válasz 0/2 79ms 30456 KiB
22 Hibás válasz 0/2 76ms 30404 KiB
23 Elfogadva 2/2 43ms 26816 KiB
24 Elfogadva 2/2 43ms 26876 KiB
25 Hibás válasz 0/2 45ms 26940 KiB
26 Elfogadva 2/2 43ms 26676 KiB
27 Elfogadva 2/2 46ms 26796 KiB
28 Hibás válasz 0/2 45ms 26932 KiB