Advertisement
vvsvvs

Untitled

May 17th, 2022
425
129 days
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. class Bakery_Shop
  7. {
  8.     static void Main()
  9.     {
  10.         Dictionary<int, string> consistsWater = new Dictionary<int, string>
  11.         {
  12.             {50, "Croissant"},
  13.             {40, "Muffin"},
  14.             {30, "Baguette"},
  15.             {20, "Bagel"}
  16.         };
  17.        
  18.         Dictionary<string, int> products = new Dictionary<string, int>();
  19.      
  20.         Queue<double> waters = new Queue<double>(Console.ReadLine().Split(' ', StringSplitOptions.RemoveEmptyEntries).Select(double.Parse));
  21.         Stack<double> floors = new Stack<double>(Console.ReadLine().Split(' ', StringSplitOptions.RemoveEmptyEntries).Select(double.Parse));
  22.        
  23.         while ((waters.Count > 0) && (floors.Count > 0))
  24.         {
  25.             double water = waters.Dequeue();
  26.             double floor = floors.Pop();
  27.            
  28.             double consistKey = WaterConsist(water, floor);
  29.             bool isEqualKey = ((consistKey * 100 - (int)(consistKey * 100)) == 0);
  30.            
  31.             if((isEqualKey) && (consistsWater.ContainsKey((int)consistKey)))
  32.             {
  33.                 string productKey = consistsWater[(int)consistKey];
  34.                
  35.                 if(!products.ContainsKey(productKey))
  36.                 {
  37.                     products.Add(productKey, 0);
  38.                 }
  39.                
  40.                 products[productKey]++;
  41.             }
  42.             else
  43.             {
  44.                 floors.Push(floor - water);
  45.                
  46.                 if(!products.ContainsKey("Croissant"))
  47.                 {
  48.                     products.Add("Croissant", 0);
  49.                 }
  50.                
  51.                 products["Croissant"]++;
  52.             }
  53.         }
  54.        
  55.         products = products.OrderByDescending(value => value.Value).ThenBy(key => key.Key).ToDictionary(key => key.Key, value => value.Value);
  56.        
  57.         StringBuilder sb = new StringBuilder();
  58.        
  59.         foreach(KeyValuePair<string, int> product in products)
  60.         {
  61.             sb.AppendLine($"{product.Key}: {product.Value}");
  62.         }
  63.        
  64.         sb.Append("Water left: ");
  65.        
  66.         if(waters.Count > 0)
  67.         {
  68.             sb.AppendLine($"{string.Join(", ", waters)}");
  69.         }
  70.         else
  71.         {
  72.             sb.AppendLine($"None");
  73.         }
  74.        
  75.         sb.Append("Flour left: ");
  76.        
  77.         if(floors.Count > 0)
  78.         {
  79.             sb.AppendLine($"{string.Join(", ", floors)}");
  80.         }
  81.         else
  82.         {
  83.             sb.AppendLine($"None");
  84.         }
  85.        
  86.         Console.WriteLine(sb.ToString().TrimEnd());
  87.        
  88.     }
  89.    
  90.     private static Func<double, double, double> WaterConsist = (water, floor) => water * 100 /(water + floor);
  91. }
Advertisement
RAW Paste Data Copied
Advertisement