3. Legendary farming
Привет,
не зная защо ми гърми задачата в judge. Всеки вход от задачата ми излиза правилен. Ето го кодът:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LegendaryFarming
{
class Program
{
public static void Main()
{
Dictionary<string, int> keyMaterials = new Dictionary<string, int>();
keyMaterials["motes"] = 0;
keyMaterials.Add("fragments", 0);
keyMaterials.Add("shards", 0);
Dictionary<string, int> junkMaterials = new Dictionary<string, int>();
while (true)
{
string[] input = Console.ReadLine()
.Split();
bool hasToBreak = false;
for (int i = 0; i < input.Length; i+= 2)
{
int quantity = int.Parse(input[i]);
string material = input[i + 1].ToLower();
if (material == "shards" || material == "fragments" || material == "motes")
{
keyMaterials[material] += quantity;
if (keyMaterials[material] >= 250)
{
keyMaterials[material] -= 250;
if (material == "shard")
{
Console.WriteLine($"Shadowmourne obtained!");
}
else if (material == "fragments")
{
Console.WriteLine($"Valanyr obtained!");
}
else
{
Console.WriteLine($"Dragonwrath obtained!");
}
hasToBreak = true;
break;
}
}
else
{
if (junkMaterials.ContainsKey(material) == false)
{
junkMaterials[material] = 0;
}
junkMaterials[material] += quantity;
}
}
if (hasToBreak)
{
break;
}
}
Dictionary<string, int> filteredKeyMaterials = keyMaterials
.OrderByDescending(kvp => kvp.Value)
.ThenBy(kvp => kvp.Key)
.ToDictionary(a => a.Key, a => a.Value);
foreach (var kvp in filteredKeyMaterials)
{
string material = kvp.Key;
int quantity = kvp.Value;
Console.WriteLine($"{material}: {quantity}");
}
foreach (var kvp in junkMaterials.OrderBy(kvp => kvp.Key))
{
string material = kvp.Key;
int quantity = kvp.Value;
Console.WriteLine($"{material}: {quantity}");
}
}
}
}
Ако някой може да ми каже къде е грешката и защо ми дава 60 от 100 точки, ще е супер.
You’ve beaten all the content and the last thing left to accomplish is own a legendary item. However, it’s a tedious process and requires quite a bit of farming. Anyway, you are not too pretentious – any legendary will do. The possible items are:
Shards, Fragments and Motes are the key materials, all else is junk. You will be given lines of input, such as
2 motes 3 ores 15 stones. Keep track of the key materials - the first that reaches the 250 mark wins the race. At that point, print the corresponding legendary obtained. Then, print the remaining shards, fragments, motes, ordered by quantity in descending order, then by name in ascending order, each on a new line. Finally, print the collected junk items, in alphabetical order.
Input
Output
Examples
Input
Output
3 Motes 5 stones 5 Shards
6 leathers 255 fragments 7 Shards
Valanyr obtained!
fragments: 5
shards: 5
motes: 3
leathers: 6
stones: 5
123 silver 6 shards 8 shards 5 motes
9 fangs 75 motes 103 MOTES 8 Shards
86 Motes 7 stones 19 silver
Dragonwrath obtained!
shards: 22
motes: 19
fragments: 0
fangs: 9
silver: 123
няма да повярваш каква е грешката ти
if (material == "shard") това трябва да е shards ! :D
motes fragments ги хващаш но в shard не влизаш защото ти подават shards