Професионална програма
Loading...
krum_43 avatar krum_43 329 Точки

Задачата е много хубава,но не намирам грешка в решението ти.

                                                    :(

-1
kalina_ilieva avatar kalina_ilieva 3 Точки

Здравейте,

сега решавам тази задача и имам същия проблем. Проверката, която препоръчва колегата по-горе я има в кода и въпреки това дава 60/100. Имате ли представа къде е проблема?

0
nickwork avatar nickwork 368 Точки

Пускам ти направо моето решение

 

using System;
using System.Linq;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using System.Text;

namespace _6.Courses
{
    class Program
    {

        public static void Main()
        {
            int count = int.Parse(Console.ReadLine());
            Dictionary<string, Dictionary<string, List<string>>> register = new Dictionary<string, Dictionary<string, List<string>>>();

            for (int i = 0; i < count; i++)
            {
                string[] input = Console.ReadLine().Split();
                string continent = input[0];
                string country = input[1];
                string city = input[2];

                if (!register.ContainsKey(continent))
                {
                    register.Add(continent, new Dictionary<string, List<string>>());
                }

                if (!register[continent].ContainsKey(country))
                {
                    register[continent].Add(country, new List<string>());
                }
                register[continent][country].Add(city);
            }

            foreach (var currentContinent in register)
            {
                Console.WriteLine($"{currentContinent.Key}:");

                foreach (var currentCountry in currentContinent.Value)
                {
                    Console.WriteLine($"  {currentCountry.Key} -> {string.Join(", ", currentCountry.Value)}");
                }
            }
        }
    }
}

0
kalina_ilieva avatar kalina_ilieva 3 Точки

Благодаря!

0
li_damian avatar li_damian 0 Точки

И аз благодаря, защото и аз имах същия проблем като колегите, на които им дава 60/100.

Решението на колегата nickwork наистина дава 100/100 но така има възможност градовете да се повтарят. Например ако подам следните данни:

3
Europe Germany Berlin
Europe Germany Berlin
Europe Germany Berlin

Ще ми даде:
Europe:
Germany -> Berlin, Berlin, Berlin

Наистина в условието на задачата не се споменава, че градовете не могат да се повтарят, но за мен лично това си беше доста заблуждаващо и изгубих много време.

0
nickwork avatar nickwork 368 Точки

Като бърз вариант за решаване на този проблем е вместо лист да използваш един хеш сет и всичко става 6...сигурно по условие това го няма за повтарящи се градове и най вероятно за това не съм го предвидил а и щом е дало 100/100...иначе забележката ти е уместна :) , в реален проект такива ситуации трябва добре да се обмислят good job, че обръщаш внимание на такива моменти...а самата задача тества дали сме разбрали идеята на речниците...без всичките и гранични положения които могат в последствие да изникнат...

0