77742024-01-11 09:32:54NotYouElágazás nélküli úton levő települések (50 pont)csharpElfogadva 50/50109ms36452 KiB
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace StopElagazas
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] inp = Console.ReadLine().Split().Select(int.Parse).ToArray();
            int n = inp[0] + 1;
            int m = inp[1];
            int[] l = new int[2];
            List<int>[] cities = new List<int>[n + 1];
            List<int> bag = new List<int>();
            for (int i = 0; i < n; i++)
            {
                cities[i] = new List<int>();
            }
            for (int i = 0; i < m; i++)
            {
                l = Console.ReadLine().Split().Select(int.Parse).ToArray();
                cities[l[1]].Add(l[0]);
                cities[l[0]].Add(l[1]);
            }
            for (int i = 1; i < n; i++)
            {
                if (cities[i].Count == 1)
                {
                    bag.Add(i);
                }
            }
            int last = -1;
            int dis;
            List<int> sol = new List<int>();
            for (int i = 0; i < bag.Count; i++)
            {
                dis = bag[i];
                while (true)
                {
                    if (dis == bag[i])
                    {
                        last = dis;
                        dis = cities[bag[i]].First();
                        if (!sol.Contains(dis))
                        {
                            sol.Add(dis);
                        }
                    }
                    else if (cities[dis].Count == 2)
                    {
                        if (cities[dis][0] == last)
                        {
                            last = dis;
                            dis = cities[dis][1];
                        }
                        else
                        {
                            last = dis;
                            dis = cities[dis][0];
                        }
                        if (!sol.Contains(dis))
                        {
                            sol.Add(dis);
                        }
                    }
                    else
                    {
                        break;
                    }
                }
            }
            Console.WriteLine(sol.Count);
            sol.Sort();
            for (int i = 0; i < sol.Count; i++)
            {
                Console.Write(sol[i] + " ");
            }
            Console.ReadLine();
        }
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/035ms22212 KiB
2Elfogadva0/0108ms33332 KiB
3Elfogadva2/237ms23532 KiB
4Elfogadva2/235ms23696 KiB
5Elfogadva2/232ms23720 KiB
6Elfogadva2/235ms23960 KiB
7Elfogadva2/237ms24244 KiB
8Elfogadva2/241ms26016 KiB
9Elfogadva2/248ms28028 KiB
10Elfogadva2/256ms30704 KiB
11Elfogadva2/268ms33776 KiB
12Elfogadva2/271ms34348 KiB
13Elfogadva3/339ms26924 KiB
14Elfogadva3/343ms28372 KiB
15Elfogadva3/348ms29080 KiB
16Elfogadva3/356ms29356 KiB
17Elfogadva3/370ms35320 KiB
18Elfogadva3/370ms35284 KiB
19Elfogadva3/379ms35460 KiB
20Elfogadva3/3105ms36152 KiB
21Elfogadva3/3109ms36364 KiB
22Elfogadva3/3108ms36452 KiB