Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- namespace _12CupsAndBottles
- {
- class Startup
- {
- static void Main(string[] args)
- {
- int[] cupsCapacity = Console.ReadLine()
- .Split(" ", StringSplitOptions.RemoveEmptyEntries)
- .Select(int.Parse)
- .ToArray();
- int[] filledBottles = Console.ReadLine()
- .Split(" ", StringSplitOptions.RemoveEmptyEntries)
- .Select(int.Parse)
- .ToArray();
- Queue<int> queueOfCups = new Queue<int>(cupsCapacity);
- Stack<int> stackOfBottles = new Stack<int>(filledBottles);
- int wastedWater = 0;
- bool AreTheCupsFilled = true;
- while (queueOfCups.Count > 0 && stackOfBottles.Count > 0)
- {
- int queueElement = queueOfCups.Peek();
- int stackElement = stackOfBottles.Peek();
- if (stackElement >= queueElement)
- {
- wastedWater += stackElement - queueElement;
- queueOfCups.Dequeue();
- stackOfBottles.Pop();
- }
- else if (queueElement > stackElement)
- {
- while (queueElement >= 0)
- {
- queueElement -= stackElement;
- }
- queueOfCups.Dequeue();
- stackOfBottles.Pop();
- }
- if (stackOfBottles.Count == 0 && queueOfCups.Count > 0)
- {
- AreTheCupsFilled = false;
- break;
- }
- }
- if (AreTheCupsFilled)
- {
- int remainingBottles = stackOfBottles.Pop();
- Console.WriteLine($"Bottles: {remainingBottles}");
- Console.WriteLine($"Wasted litters of water: {wastedWater}");
- }
- else
- {
- Console.WriteLine($"Cups: {string.Join(" ", queueOfCups)}");
- Console.WriteLine($"Wasted litters of water: {wastedWater}");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement