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

Roli The Coder

Измъчих се с тази задача и не мога да изкарам повече от 80/100. Ще бъда много благодарен ако някой може да ми каже къде греша.

Ето го кода ми: http://pastebin.com/A1428F1c

Ето и условието на задачата : https://judge.softuni.bg/Contests/Compete/Index/454#3

Благодаря предварително.

Тагове:
0
Programming Fundamentals
Teodor92 avatar Teodor92 579 Точки
Best Answer

Проблема идва от проверките ти и от факта не че пазиш връзката ID - EventName:
 

                if (eventName.Contains("#"))
                {
                    if (!listOfIDs.Contains(ID))
                    {
                        listOfIDs.Add(ID);
                        organizer.Add(eventName, participants);
                    }
                    else
                    {
                        if (organizer.ContainsKey(eventName))
                        {
                            organizer[eventName].AddRange(participants);
                        }
                        else
                        {
                            goto startline;
                        }
 
                    }
                }
                else
                {
                    goto startline;
                }

Какво ще стане в следния случай:
Input:
1 #FirstEvent @participat @participat1
2 #SecondEvent  @participat2 @participat3
2 #FirstEvent @participat4 @participat5
Time for Code

Поради факта че проверяваш само дали същестува ID-то и след това дали същестува event-та, а не и двете едно временно event-a с ID == 2 и name #FirstEvent бива пропускан.

 

P.S. Избягвай goto - влошава качеството на кода и почти няма случай, в който да е нужен и да има положителн ефект.

0
24/02/2017 21:07:23
Ivelin153 avatar Ivelin153 12 Точки

Благодаря много! Спести ми още много мъки :Д

Опростих си кода и премахнах goto

http://pastebin.com/shwk0iZV - 100/100 

Благодаря още веднъж. :)

1