74332024-01-08 22:45:33CsongiElágazás nélküli úton levő települések (50 pont)csharpWrong answer 25/50114ms68512 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();
            }
        }
    }
}
SubtaskSumTestVerdictTimeMemory
base25/50
1Accepted0/041ms22340 KiB
2Accepted0/0114ms36220 KiB
3Wrong answer0/239ms23520 KiB
4Wrong answer0/239ms23756 KiB
5Accepted2/237ms24092 KiB
6Accepted2/241ms24604 KiB
7Accepted2/241ms24876 KiB
8Accepted2/246ms26932 KiB
9Accepted2/250ms28936 KiB
10Accepted2/259ms31720 KiB
11Accepted2/274ms34480 KiB
12Accepted2/278ms34936 KiB
13Wrong answer0/346ms27344 KiB
14Wrong answer0/348ms30612 KiB
15Wrong answer0/357ms40364 KiB
16Wrong answer0/386ms67272 KiB
17Wrong answer0/385ms55140 KiB
18Wrong answer0/389ms68512 KiB
19Wrong answer0/397ms65780 KiB
20Accepted3/3108ms38516 KiB
21Accepted3/3114ms39556 KiB
22Accepted3/3112ms40844 KiB