Advertisement
Guest User

Untitled

a guest
May 20th, 2016
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.39 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. namespace Problem_12.Legendary_Farming
  5. {
  6.     public class Program
  7.     {
  8.         public static void Main()
  9.         {
  10.             SortedDictionary<String, int> keyMaterialQuantity = new SortedDictionary<string, int>();
  11.             SortedDictionary<String, int> junkMaterialQuantity = new SortedDictionary<string, int>();
  12.             keyMaterialQuantity.Add("shards", 0);
  13.             keyMaterialQuantity.Add("fragments", 0);
  14.             keyMaterialQuantity.Add("motes", 0);
  15.             String winner = "";
  16.             while (winner.Equals(""))
  17.             {
  18.                 String[] line = Console.ReadLine().ToLower().Split(new[] { ' ' },StringSplitOptions.RemoveEmptyEntries);
  19.                 for (int i = 0; i < line.Length - 1; i += 2)
  20.                 {
  21.                     int quantity = int.Parse(line[i]);
  22.                     String material = line[i + 1];
  23.                     if (material.Equals("shards") || material.Equals("fragments") || material.Equals("motes"))
  24.                     {
  25.                         int existingQuantity = keyMaterialQuantity[material];
  26.                         keyMaterialQuantity.Remove(material);
  27.                         keyMaterialQuantity.Add(material, existingQuantity + quantity);
  28.                         if (existingQuantity + quantity >= 250)
  29.                         {
  30.                             winner = material;
  31.                             existingQuantity = keyMaterialQuantity[material];
  32.                             keyMaterialQuantity.Remove(material);
  33.                             keyMaterialQuantity.Add(material, existingQuantity - 250);
  34.                             break;
  35.                         }
  36.                     }
  37.                     else
  38.                     {
  39.                         if (!junkMaterialQuantity.ContainsKey(material))
  40.                         {
  41.                             junkMaterialQuantity.Add(material, 0);
  42.                         }
  43.                         int existingQuantity = junkMaterialQuantity[material];
  44.                         junkMaterialQuantity.Remove(material);
  45.                         junkMaterialQuantity.Add(material, existingQuantity + quantity);
  46.                     }
  47.                    
  48.                 }
  49.             }
  50.  
  51.             print(winner, keyMaterialQuantity, junkMaterialQuantity);
  52.         }
  53.         private static void print(string winner, SortedDictionary<string, int> keyMaterialQuantity, SortedDictionary<string, int> junkMaterialQuantity)
  54.         {
  55.             if (winner.Equals("shards"))
  56.             {
  57.                 Console.WriteLine("Shadowmourne obtained!");
  58.             }
  59.             if (winner.Equals("fragments"))
  60.             {
  61.                 Console.WriteLine("Valanyr obtained!");
  62.             }
  63.             if (winner.Equals("motes"))
  64.             {
  65.                 Console.WriteLine("Dragonwrath obtained!");
  66.             }
  67.             var keyMaterialQuantityList = keyMaterialQuantity.ToList();
  68.             keyMaterialQuantityList.Sort((pair1, pair2) => pair2.Value.CompareTo(pair1.Value));
  69.             foreach (var item in keyMaterialQuantityList)
  70.             {
  71.                 Console.WriteLine($"{item.Key}: {item.Value}");
  72.             }
  73.             foreach (var item in junkMaterialQuantity)
  74.             {
  75.                 Console.WriteLine($"{item.Key}: {item.Value}");
  76.             }
  77.         }
  78.     }
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement