Advertisement
Iskrenov84

Untitled

Jun 25th, 2022
845
Never
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.  
  5. namespace TilesMaster
  6. {
  7.     internal class TilesMaster
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             Stack<int> whiteTiles = new Stack<int>(Console.ReadLine().Split(' ',StringSplitOptions.RemoveEmptyEntries).Select(int.Parse));
  12.             Queue<int> greyTiles = new Queue<int>(Console.ReadLine().Split(' ',StringSplitOptions.RemoveEmptyEntries).Select(int.Parse));
  13.  
  14.             Dictionary<string, int> locations = new Dictionary<string, int>();
  15.  
  16.             while (whiteTiles.Count != 0 && greyTiles.Count != 0)
  17.             {
  18.                 int whiteTileArea = whiteTiles.Peek();
  19.                 int greyTileArea = greyTiles.Peek();
  20.  
  21.                 if (whiteTileArea + greyTileArea == 40)
  22.                 {
  23.                     if (!locations.ContainsKey("Sink"))
  24.                     {
  25.                         locations.Add("Sink", 1);
  26.                     }
  27.                     else
  28.                     {
  29.                         locations["Sink"]++;
  30.                     }
  31.                     whiteTiles.Pop();
  32.                     greyTiles.Dequeue();
  33.                 }
  34.                 else if (whiteTileArea + greyTileArea == 50)
  35.                 {
  36.                     if (!locations.ContainsKey("Oven"))
  37.                     {
  38.                         locations.Add("Oven", 1);
  39.                     }
  40.                     else
  41.                     {
  42.                         locations["Oven"]++;
  43.                     }
  44.                     whiteTiles.Pop();
  45.                     greyTiles.Dequeue();
  46.                 }
  47.                 else if (whiteTileArea + greyTileArea == 60)
  48.                 {
  49.                     if (!locations.ContainsKey("Countertop"))
  50.                     {
  51.                         locations.Add("Countertop", 1);
  52.                     }
  53.                     else
  54.                     {
  55.                         locations["Countertop"]++;
  56.                     }
  57.                     whiteTiles.Pop();
  58.                     greyTiles.Dequeue();
  59.                 }
  60.                 else if (whiteTileArea + greyTileArea == 70)
  61.                 {
  62.                     if (!locations.ContainsKey("Wall"))
  63.                     {
  64.                         locations.Add("Wall", 1);
  65.                     }
  66.                     else
  67.                     {
  68.                         locations["Wall"]++;
  69.                     }
  70.                     whiteTiles.Pop();
  71.                     greyTiles.Dequeue();
  72.                 }
  73.                 else if (whiteTileArea != greyTileArea)
  74.                 {
  75.                     whiteTiles.Pop();
  76.                     greyTiles.Dequeue();
  77.                     whiteTileArea = whiteTileArea / 2;
  78.                     whiteTiles.Push(whiteTileArea);
  79.                     greyTiles.Enqueue(greyTileArea);
  80.                 }
  81.                 else
  82.                 {
  83.                     if (!locations.ContainsKey("Floor"))
  84.                     {
  85.                         locations.Add("Floor", 1);
  86.                     }
  87.                     else
  88.                     {
  89.                         locations["Floor"]++;
  90.                     }
  91.                     whiteTiles.Pop();
  92.                     greyTiles.Dequeue();
  93.                 }
  94.             }
  95.  
  96.             if (whiteTiles.Count == 0)
  97.             {
  98.                 Console.WriteLine("White tiles left: none");
  99.             }
  100.             else
  101.             {
  102.                 Console.WriteLine($"White tiles left: {string.Join(", ",whiteTiles)}");
  103.             }
  104.             if (greyTiles.Count == 0)
  105.             {
  106.                 Console.WriteLine("Grey tiles left: none");
  107.             }
  108.             else
  109.             {
  110.                 Console.WriteLine($"Grey tiles left: {string.Join(", ", greyTiles)}");
  111.             }
  112.  
  113.             foreach (var homeLocations in locations.OrderByDescending(x => x.Value).ThenBy(c => c.Key))
  114.             {
  115.                 Console.WriteLine($"{homeLocations.Key}: {homeLocations.Value}");
  116.             }
  117.         }
  118.     }
  119. }
  120.  
Advertisement
RAW Paste Data Copied
Advertisement