74322024-01-08 22:44:27CsongiElágazás nélküli úton levő települések (50 pont)csharpHibás válasz 25/50114ms68504 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 + " ");
            }
            if (novekvo.Count == 0)
            {
                Console.WriteLine();
            }


            Console.ReadKey();
        }
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base25/50
1Elfogadva0/041ms22764 KiB
2Elfogadva0/0112ms36680 KiB
3Hibás válasz0/239ms23652 KiB
4Hibás válasz0/239ms24040 KiB
5Elfogadva2/239ms24400 KiB
6Elfogadva2/241ms24688 KiB
7Elfogadva2/243ms24616 KiB
8Elfogadva2/246ms26984 KiB
9Elfogadva2/252ms29148 KiB
10Elfogadva2/261ms31604 KiB
11Elfogadva2/275ms33924 KiB
12Elfogadva2/278ms35224 KiB
13Hibás válasz0/346ms27736 KiB
14Hibás válasz0/350ms30788 KiB
15Hibás válasz0/359ms40504 KiB
16Hibás válasz0/379ms67928 KiB
17Hibás válasz0/385ms55192 KiB
18Hibás válasz0/394ms68504 KiB
19Hibás válasz0/397ms65348 KiB
20Elfogadva3/3111ms38824 KiB
21Elfogadva3/3112ms39476 KiB
22Elfogadva3/3114ms40836 KiB