74342024-01-08 22:53:32CsongiElágazás nélküli úton levő települések (50 pont)csharpWrong answer 25/50115ms68364 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/039ms22828 KiB
2Accepted0/0114ms36772 KiB
3Wrong answer0/241ms23172 KiB
4Wrong answer0/239ms24076 KiB
5Accepted2/235ms23592 KiB
6Accepted2/239ms24264 KiB
7Accepted2/239ms24244 KiB
8Accepted2/248ms26520 KiB
9Accepted2/252ms29004 KiB
10Accepted2/261ms31516 KiB
11Accepted2/275ms34776 KiB
12Accepted2/275ms35144 KiB
13Wrong answer0/343ms27720 KiB
14Wrong answer0/348ms30880 KiB
15Wrong answer0/357ms40708 KiB
16Wrong answer0/379ms67952 KiB
17Wrong answer0/385ms55220 KiB
18Wrong answer0/394ms68364 KiB
19Wrong answer0/397ms65888 KiB
20Accepted3/3111ms38520 KiB
21Accepted3/3115ms39116 KiB
22Accepted3/3114ms40436 KiB