Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

Dianov avatar Dianov 13 Точки

Sets and Dictionaries Advanced - Exercise (06. Wardrobe)

Здравейте, колеги! Реших въпросната задача с вложен речник, но не се вмества в Timelimit-a и при верни Zero тестове, всички останали гърмят с Runtime error. Някой има ли идея как може да се оптимизира кода, за да покрие timelimit-a, който е зададен в Judge? Благодаря предварително!

https://pastebin.com/dauVviYZ

Условие на задачата:

Create a program that helps you decide what clothes to wear from your wardrobe. You will receive the clothes, which are currently in your wardrobe, sorted by their color in the following format:

"{color} -> {item1},{item2},{item3}…"

If you receive a certain color, which already exists in your wardrobe, just add the clothes to its records. You can also receive repeating items for a certain color and you have to keep their count.

In the end, you will receive a color and a piece of clothing, which you will look for in the wardrobe, separated by a space in the following format:

"{color} {clothing}"

Your task is to print all the items and their count for each color in the following format:

"{color} clothes:

* {item1} - {count}

* {item2} - {count}

* {item3} - {count}

* {itemN} - {count}"

If you find the item you are looking for, you need to print "(found!)" next to it:

"* {itemN} - {count} (found!)"

Input

  • On the first line, you will receive n - the number of lines of clothes, which you will receive.
  • On the next n lines, you will receive the clothes in the format described above.

Output

Print the clothes from your wardrobe in the format described above

0
C# Advanced 12/03/2022 19:44:38
icowwww avatar icowwww 2673 Точки

Здравей,

Защо реши, че не минава заради time limit?

Runtime грешка се получава при exception по време на теста. По някаква случайност нулевите тестове не продуцират грешката, че ако получиш на един ред информация за цвят, който нямаш, и повече от един път същата дреха.

Например ако сложим още един път shoes на първия ред в 3тия тест:

5
Blue -> shoes,shoes
Blue -> shoes,shoes,shoes
Blue -> shoes,shoes
Blue -> shoes
Blue -> shoes,shoes
Red tanktop

Твоят код ще хвърли грешка:

5
Blue -> shoes,shoes
Unhandled exception. System.ArgumentException: An item with the same key has already been added. Key: shoes

За да го оправиш добави проверка на ред 32 дали дрехата вече я няма за този цвят:

                         if (!wardrobe[colorAndClothes[0]].ContainsKey(clothes[j]))
                        {
                            wardrobe[colorAndClothes[0]].Add(clothes[j], 1);
                            continue;
                        }
                        wardrobe[colorAndClothes[0]][clothes[j]]++;

Цялото:

https://pastebin.com/JvJhsf75

 

0
13/03/2022 00:01:11
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.