74312024-01-08 22:42:44CsongiElágazás nélküli úton levő települések (50 pont)csharpHibás válasz 25/50119ms68144 KiB
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace zsakfalu
{
    internal class Program
    {

        static int[] bfs(List<List<int>> csucslista, int v, int n)
        {
            List<int> path = new List<int>();
            bool[] check = new bool[n+1];
            Queue<int> sor = new Queue<int>(n+1);
            sor.Enqueue(v);
            check[v] = true;
            bool breakk = false;
            while (sor.Count > 0)
            {
                int most = sor.Dequeue();

                foreach (int szomszed in csucslista[most])
                {
                    if (!check[szomszed])
                    {
                        
                        if (csucslista[szomszed].Count < 3)
                        {
                            path.Add(szomszed);
                            sor.Enqueue(szomszed);
                            check[szomszed] = true;
                            
                        }
                        else
                        {
                            path.Add(szomszed);
                            sor.Enqueue(szomszed);
                            check[szomszed] = true;
                            breakk = true;
                            break;
                        }
                        
                    }
                    
                }
                if (breakk)
                    break;
            }
            return path.ToArray();
        }

        static void Main(string[] args)
        {
            int[] be = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
            int n = be[0];
            int m = be[1];
            List<List<int>> csucsok = new List<List<int>>();
            for (int i = 0; i <= n; i++)
            {
                csucsok.Add(new List<int>());
            }
            for(int i = 1; i <= m; i++)
            {
                int[] be1 = Console.ReadLine().Split(' ').Select(int.Parse).ToArray();
                csucsok[be1[0]].Add(be1[1]);
                csucsok[be1[1]].Add(be1[0]);
                
            }
            int[] fokszamok = new int[n+1];
            fokszamok[0] = 0;
            for (int i = 1; i <= n; i++)
            {
                fokszamok[i] = csucsok[i].Count;
            }
            List<int> bfss = new List<int>();
            int hanydarabzsak = fokszamok.Count(c => c == 1);
            for (int i = 1; i < fokszamok.Length; i++)
            {
                if (fokszamok[i] == 1) //amelyik zsakfalu
                {
                    int[] a = bfs(csucsok, i, n);
                    for (int j = 0; j < a.Length; j++)
                    {
                        bfss.Add(a[j]);
                    }
                }
            }
            Console.WriteLine(bfss.Count);
            List<int> novekvo = bfss.OrderBy(c => c).ToList();
            foreach (int i in novekvo)
            {
                Console.Write(i + " ");
            }


            Console.ReadKey();
        }
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base25/50
1Elfogadva0/041ms23260 KiB
2Elfogadva0/0109ms37040 KiB
3Hibás válasz0/241ms23836 KiB
4Hibás válasz0/241ms23912 KiB
5Elfogadva2/237ms24372 KiB
6Elfogadva2/241ms25008 KiB
7Elfogadva2/241ms25240 KiB
8Elfogadva2/246ms27376 KiB
9Elfogadva2/252ms29596 KiB
10Elfogadva2/259ms32444 KiB
11Elfogadva2/276ms34712 KiB
12Elfogadva2/279ms35484 KiB
13Hibás válasz0/346ms28200 KiB
14Hibás válasz0/350ms30756 KiB
15Hibás válasz0/357ms40540 KiB
16Hibás válasz0/386ms67648 KiB
17Hibás válasz0/385ms55052 KiB
18Hibás válasz0/396ms68144 KiB
19Hibás válasz0/3101ms65364 KiB
20Elfogadva3/3119ms38356 KiB
21Elfogadva3/3109ms39560 KiB
22Elfogadva3/3115ms40872 KiB