gabi11

(Demo) C# Advanced Exam (17.02.2019) - 01. Socks

Jun 10th, 2019
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.43 KB | None | 0 0
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6.  
  7. namespace Advanced
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {
  13.             Stack<int> leftSocks = new Stack<int>(Console.ReadLine()
  14.                                                          .Split()
  15.                                                          .Select(int.Parse));
  16.  
  17.             Queue<int> rightSocks = new Queue<int>(Console.ReadLine()
  18.                                                           .Split()
  19.                                                           .Select(int.Parse));
  20.  
  21.             List<int> sets = new List<int>();
  22.  
  23.             while (leftSocks.Any() && rightSocks.Any())
  24.             {
  25.                 int leftSock = leftSocks.Peek();
  26.                 int rightSock = rightSocks.Peek();
  27.  
  28.                 if (leftSock > rightSock)
  29.                 {
  30.                     sets.Add(leftSocks.Pop() + rightSocks.Dequeue());
  31.                 }
  32.                 else if (leftSock < rightSock)
  33.                 {
  34.                     leftSocks.Pop();
  35.                 }
  36.                 else
  37.                 {
  38.                     leftSocks.Push(leftSocks.Pop() + 1);
  39.                     rightSocks.Dequeue();
  40.                 }
  41.             }
  42.  
  43.             Console.WriteLine(sets.Max());
  44.             Console.WriteLine(string.Join(" ", sets));
  45.         }
  46.     }
  47. }
Advertisement
Add Comment
Please, Sign In to add comment