71842024-01-02 12:04:33czitaA lehető legkevesebb átszállás (50 pont)csharpHibás válasz 4/5046ms30976 KiB
using System;
using System.Collections.Generic;
//using System.Linq;


namespace átszállás
{
    internal class Program
    {




        static void Main(string[] args)
        {
            string[] sts = Console.ReadLine().Split(' ');
            int[] st = new int[2];
            st[1] = int.Parse(sts[1]);
            st[0] = int.Parse(sts[0]);
            int N = st[1];
            int M = st[0];
             sts = Console.ReadLine().Split(' ');
             st = new int[2];
            st[1] = int.Parse(sts[1]);
            st[0] = int.Parse(sts[0]);
            bool vanvegallomas = false, vanatfedes = true; ;
            if (st[0] != 1)
            { Console.WriteLine(-1); }
            else
            {
                int vonat = 1, elozoveg = 0, veg = st[1], kezd;
                List<int> vonatok = new List<int>();
                int cv = 1;
                while (st[0] == 1)//az első állomásról induló vonat
                {
                    if (st[1] > veg)
                    {
                        veg = st[1];
                        vonat = cv;
                    }
                    cv++;
                    sts = Console.ReadLine().Split(' ');
                    st = new int[2];
                    st[1] = int.Parse(sts[1]);
                    st[0] = int.Parse(sts[0]);
                    if (st[1] == N)
                    {
                        vanvegallomas = true;
                    }
                }
                vonatok.Add(vonat);
                kezd = st[0];
                elozoveg = st[1];
                int kovetkezoveg = veg;
                int elozokezd = st[0];
                for (int i = cv; i < M; i++)
                {
                    if (!vanvegallomas)
                    {
                        if (st[0] <= veg)
                        {
                            if (st[1] > kovetkezoveg)
                            {
                                kovetkezoveg = st[1];
                                vonat = i;
                            }
                        }
                        else//Ha nincs átfedés
                        {
                            if (kovetkezoveg < st[0])
                            {
                                vanatfedes = false;
                            }
                            vonatok.Add(vonat);
                            veg = kovetkezoveg;
                            vonat = i;
                            

                        }

                        elozoveg = st[1];
                        elozokezd = st[0];
                        if (st[1] == N)
                        {
                            vanvegallomas = true;
                        }
                    }
                    if (i <= M - 1)
                    {
                        sts = Console.ReadLine().Split(' ');
                        st = new int[2];
                        st[1] = int.Parse(sts[1]);
                        st[0] = int.Parse(sts[0]);
                    }

                }
                vonatok.Add(vonat);
                
                if (!vanvegallomas || !vanatfedes||veg!=N)
                { Console.WriteLine(-1); }
                else
                {
                    HashSet<int> h = new HashSet<int>(vonatok); 
                    Console.WriteLine(h.Count-1);
                    Console.WriteLine(string.Join(" ", h));
                }


            }
            Console.ReadKey();
        }
    }
}


RészfeladatÖsszpontTesztVerdiktIdőMemória
base4/50
1Hibás válasz0/030ms22632 KiB
2Hibás válasz0/045ms27296 KiB
3Elfogadva1/132ms23736 KiB
4Elfogadva1/130ms23728 KiB
5Elfogadva2/234ms24524 KiB
6Hibás válasz0/230ms24764 KiB
7Hibás válasz0/234ms25048 KiB
8Hibás válasz0/234ms25308 KiB
9Hibás válasz0/235ms25364 KiB
10Hibás válasz0/235ms25984 KiB
11Hibás válasz0/237ms27124 KiB
12Hibás válasz0/237ms27640 KiB
13Hibás válasz0/232ms26248 KiB
14Hibás válasz0/232ms26496 KiB
15Hibás válasz0/235ms26964 KiB
16Hibás válasz0/239ms28244 KiB
17Hibás válasz0/241ms29232 KiB
18Hibás válasz0/243ms29680 KiB
19Hibás válasz0/243ms29872 KiB
20Hibás válasz0/243ms29888 KiB
21Hibás válasz0/246ms30356 KiB
22Hibás válasz0/246ms30192 KiB
23Hibás válasz0/245ms30244 KiB
24Hibás válasz0/246ms30312 KiB
25Hibás válasz0/246ms30552 KiB
26Hibás válasz0/246ms30412 KiB
27Hibás válasz0/246ms30808 KiB
28Hibás válasz0/246ms30976 KiB