Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace _01.SecondNature
- {
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- public class Startup
- {
- public static void Main()
- {
- List<int> secondNatureFlowers = secondNatureFlowers = new List<int>();
- Queue<int> flowers = flowers = new Queue<int>(ReadSequenceFromConsole());
- Stack<int> buckets = buckets = new Stack<int>(ReadSequenceFromConsole());
- while (flowers.Count > 0 && buckets.Count > 0)
- {
- int currFlower = flowers.Dequeue();
- int currBucket = buckets.Pop();
- if (currFlower == currBucket)
- {
- secondNatureFlowers.Add(currFlower);
- }
- else if (currFlower > currBucket)
- {
- currFlower -= currBucket;
- flowers.Enqueue(currFlower);
- }
- else if (currFlower < currBucket)
- {
- int remainingWater = currBucket - currFlower;
- int waterToAdd = 0;
- if (buckets.Count == 0)
- {
- waterToAdd = remainingWater;
- }
- else
- {
- waterToAdd = buckets.Pop() + remainingWater;
- }
- buckets.Push(waterToAdd);
- }
- }
- string leftOvers = flowers.Count != 0 ?
- JoinString(flowers) :
- JoinString(buckets);
- string specialFlowersResult = secondNatureFlowers.Count != 0 ?
- JoinString(secondNatureFlowers) :
- "None";
- StringBuilder result = new StringBuilder();
- result.AppendLine(leftOvers);
- result.AppendLine(specialFlowersResult);
- Console.Write(result);
- }
- private static string JoinString(IEnumerable<int> toJoin)
- {
- return string.Join(" ", toJoin);
- }
- private static IEnumerable<int> ReadSequenceFromConsole()
- {
- return Console.ReadLine().Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).Select(int.Parse);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement