71852024-01-02 12:12:08czitaA lehető legkevesebb átszállás (50 pont)csharpHibás válasz 39/5050ms31356 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,vegm=0;
                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;
                        vegm = veg;
                    }
                    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;
                                vegm = elozoveg;
                            }
                        }
                        else//Ha nincs átfedés
                        {
                            if (kovetkezoveg < st[0])
                            {
                                vanatfedes = false;
                            }
                            vonatok.Add(vonat);
                            vegm = veg;
                            veg = kovetkezoveg;
                            vonat = i;
                           


                        }

                        elozoveg = st[1];
                        elozokezd = st[0];
                        if (st[1] == N)
                        {
                            vanvegallomas = true;
                            vegm = st[1];
                        }
                    }
                    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);
          //      Console.WriteLine(vegm);
                if (!vanvegallomas || !vanatfedes)
                { 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
base39/50
1Elfogadva0/032ms23272 KiB
2Elfogadva0/050ms27576 KiB
3Elfogadva1/129ms23356 KiB
4Hibás válasz0/135ms24168 KiB
5Elfogadva2/234ms24432 KiB
6Hibás válasz0/230ms24616 KiB
7Elfogadva2/235ms25424 KiB
8Elfogadva2/237ms26184 KiB
9Elfogadva2/237ms26460 KiB
10Elfogadva2/239ms27296 KiB
11Elfogadva2/239ms27828 KiB
12Elfogadva2/241ms28732 KiB
13Elfogadva2/235ms27056 KiB
14Elfogadva2/237ms27812 KiB
15Elfogadva2/239ms28196 KiB
16Elfogadva2/241ms28740 KiB
17Elfogadva2/245ms29756 KiB
18Elfogadva2/246ms30284 KiB
19Elfogadva2/248ms30276 KiB
20Elfogadva2/248ms30748 KiB
21Elfogadva2/248ms31264 KiB
22Elfogadva2/250ms31288 KiB
23Hibás válasz0/246ms30976 KiB
24Hibás válasz0/246ms30984 KiB
25Elfogadva2/250ms31132 KiB
26Hibás válasz0/246ms31288 KiB
27Hibás válasz0/246ms31356 KiB
28Elfogadva2/248ms31320 KiB