Loading...
Nikodon avatar Nikodon 3 Точки

Nikulden's meal

Привет, опитвам се да реша въпросната задача.

Докарах я до 70/100 , изкарвам Outputa , но джъдж не ми дава 100/100.

Може ли някой да помогне ако може?

Освен това имам въпрос по парче от кода.

Става дума за ред 42

 

else if (!guestMenue[guests].Contains(meal)) //(!guestMenue.ContainsKey(meal))

Първоначално го бях написал както е в закодираната чст и не работеше, а сега след корекцията проработи.

Не мога да си обясня разликата м/у двете. В закодираната част търсих точно ястието , което го няма , но в крайна сметка не работеше така.

Но дори и така пак дава 70/100.

Ще бъда благодарен на малко помощ.

Пускам кода и условието:

https://pastebin.com/nwEwBSjQ

Nikulden’s meals

Now you want to find out which meals your guests liked and how many meals they didn't like

Create a program that keeps information about guests liked and unliked meals.

You will be receiving lines with commands until you receive the "Stop" command. The possible commands are:

    • Add the {mea1} to the {guest}’s collection of meals.
    • If the guest doesn't exist, add it to your record.
    • If the guest already has the meal in his collection, don’t add it.
    • Remove  the meal of the given guest’s collection and print:

"{Guest} doesn't like the {meal}."

You must keep the count of unliked meals!

  • If the guest doesn’t exist, print:

 "{Guest} is not at the party."

  • If the guest doesn’t have the meal at the like list, print:

 "{Guest} doesn't have the {meal} in his/her collection."

In the end, you have to print the guests with their liked meals sorted in descending order by each guest meals count and then by their names in ascending order. Then print the count of unliked meals in the format below

{Guest1}: {meal1}, {meal2}, {meal3}

{Guest2}: {meal1}, {meal2}

...

Unliked meals: {count of all unliked meals}

Input

  • You will be receiving lines until you receive the "Stop" command.
  • The input will always be valid.

Output

  • Print the guests with their meals in the format described above.
  • Print the count of unliked meals in the format described above.

 

 

 

 

Examples

Input

Output

Like-Krisi-shrimps

Like-Krisi-soup

Like-Misho-salad

Like-Pena-dessert

Stop

Krisi: shrimps, soup

Misho: salad

Pena: dessert

Unliked meals: 0

Input

Output

Like-Krisi-shrimps

Unlike-Vili-carp

Unlike-Krisi-salad

Unlike-Krisi-shrimps

Stop

Vili is not at the party.

Krisi doesn't have the salad in his/her collection.

Krisi doesn't like the shrimps.

Krisi:

Unliked meals: 1

Тагове:
0
C# Fundamentals
nickwork avatar nickwork 657 Точки
Best Answer

(!guestMenue.ContainsKey(meal)) - тази команда търси ключ който го няма в колекцията(тук търсим само само ключ в колекцията)

(!guestMenue[guests].Contains(meal)) - тази търси параметър на ключа (в случая ключа тук е guests с параметър meal)

using System;
using System.Collections.Generic;
using System.Linq;

namespace _3._3_Nikulden_s_meals
{
    class Program
    {
        static void Main(string[] args)
        {
            string command;
            Dictionary<string, List<string>> guestMenue = new Dictionary<string, List<string>>();
            int count = 0;

            while ((command = Console.ReadLine()) != "Stop")
            {
                string[] commandSplit = command.Split("-", StringSplitOptions.RemoveEmptyEntries).ToArray();
                string likeUnlike = commandSplit[0];
                string guests = commandSplit[1];
                string meal = commandSplit[2];

                if (likeUnlike == "Like")
                {
                    if (!guestMenue.ContainsKey(guests))
                    {
                        guestMenue.Add(guests, new List<string>() { meal });
                    }
                    else if (!guestMenue[guests].Contains(meal))
                    {
                        guestMenue[guests].Add(meal);
                    }
                }

                else if (likeUnlike == "Unlike")
                {
                    if (!guestMenue.ContainsKey(guests))
                    {
                        Console.WriteLine($"{guests} is not at the party.");

                    }
                    else if (!guestMenue[guests].Contains(meal)) //(!guestMenue.ContainsKey(meal))
                    {
                        Console.WriteLine($"{guests} doesn't have the {meal} in his/her collection.");
                    }
                    else
                    {
                        guestMenue[guests].Remove(meal);
                        Console.WriteLine($"{guests} doesn't like the {meal}.");
                        count++;
                    }
                }
            }

            foreach (var kvp in guestMenue.OrderByDescending(kvp => kvp.Value.Count).ThenBy(kvp => kvp.Key))
            {
                Console.WriteLine($"{kvp.Key}: {string.Join(", ", kvp.Value)}");
            }

            Console.WriteLine($"Unliked meals: {count}");
        }
    }
}
 

0
Nikodon avatar Nikodon 3 Точки

Благодаря ти, сега разбрах . Много ми беше полезно :)

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