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
SvilenPavlov avatar SvilenPavlov 11 Точки

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

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