Loading...
kristian_ekov avatar kristian_ekov -2 Точки

9. * Legendary Farming ??? 60/100 ЗАЩО!?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _09.Legendary_Farming
{
    class Program
    {
        public static Dictionary<string, int> keyMaterials = new Dictionary<string, int>();
        public static SortedDictionary<string, int> junk = new SortedDictionary<string, int>();
        static void Main(string[] args)
        {
            keyMaterials.Add("shards", 0);
            keyMaterials.Add("fragments", 0);
            keyMaterials.Add("motes", 0);

            while (!enoughMaterials())
            {
                string[] line = Console.ReadLine().ToLower().Split(' ').ToArray();

                for (int i = 0; i < line.Length; i += 2)
                {
                    int quantity = int.Parse(line[i]);
                    string material = line[i + 1];

                    if (keyMaterials.ContainsKey(material))
                    {
                        keyMaterials[material] += quantity;
                    }
                    else if (junk.ContainsKey(material))
                    {
                        junk[material] += quantity;
                    }
                    else
                    {
                        junk.Add(material, quantity);
                    }

                    if (enoughMaterials())
                    {
                        break;
                    }
                }
            }

            PrintLegendary();

            foreach (var item in keyMaterials.OrderByDescending(x => x.Value).ThenBy(x=>x.Key))
            {
                Console.WriteLine($"{item.Key}: {item.Value}");
            }

            foreach (var item in junk)
            {
                Console.WriteLine($"{item.Key}: {item.Value}");
            }
        }

        private static void PrintLegendary()
        {
            if (keyMaterials["shards"] >= 250)
            {
                Console.WriteLine("Shadowmourne  obtained!");
                keyMaterials["shards"] -= 250;
            }
            else if (keyMaterials["fragments"] >= 250)
            {
                Console.WriteLine("Valanyr obtained!");
                keyMaterials["fragments"] -= 250;
            }
            else
            {
                Console.WriteLine("Dragonwrath obtained!");
                keyMaterials["motes"] -= 250;
            }
        }

        public static bool enoughMaterials()
        {
            if (keyMaterials.Values.Any(x => x >= 250))
            {
                return true;
            }
            return false;
        }
    }
}
 

Тагове:
-2
Programming Basics
Thedi avatar Thedi 200 Точки
Best Answer

Здравей,

Очевидно е, че не си фармил достатъчно за да направиш Легендарните :) Хубаво е да се фокусираш върху фарменето на "Shadowmourne obtained!", а не на "Shadowmourne  obtained!" 
Надявам се да си ме разбрал :) Успех.

1
23/01/2018 16:53:42
kristian_ekov avatar kristian_ekov -2 Точки

Много благодаря!!! Никога нямаше да се сетя.

0
DeyanSlav0v avatar DeyanSlav0v 15 Точки

Дай и условието на задачата.

0
kristian_ekov avatar kristian_ekov -2 Точки

https://softuni.bg/trainings/resources/officedocument/12293/exercise-problem-descriptions-programming-fundamentals-january-2017

9

 

0
23/01/2018 16:34:41
SvilenPavlov avatar SvilenPavlov 11 Точки

Хах, на мене 60/100 ми излизаше, заради тайм лимит и само като видях i+=2 се сетих и аз да прескоча половината повторения :) Иначе е мн гадно да си объркаш името на резултата така и да се чудиш после :)

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