-Annie-

MaximumElementInAStack

May 22nd, 2016
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.71 KB | None | 0 0
  1. namespace ConsoleApplication3
  2. {
  3.     using System;
  4.     using System.Collections.Generic;
  5.  
  6.     class MaximumElementInAStack
  7.     {
  8.         static void Main()
  9.         {
  10.             Stack<int> stack = new Stack<int>();
  11.             Stack<int> maxNumbers = new Stack<int>();
  12.             int maxElement = int.MinValue;
  13.  
  14.             int n = int.Parse(Console.ReadLine());
  15.  
  16.             for (int i = 0; i < n; i++)
  17.             {
  18.                 string[] queryArgs = Console.ReadLine().Split();
  19.  
  20.                 string query = queryArgs[0];
  21.  
  22.                 if (query == "1")
  23.                 {
  24.                     int numberToPush = int.Parse(queryArgs[1]);
  25.                     stack.Push(numberToPush);
  26.  
  27.                     if (numberToPush >= maxElement)
  28.                     {
  29.                         maxElement = numberToPush;
  30.                         maxNumbers.Push(maxElement);
  31.                     }
  32.                 }
  33.  
  34.                 else if (query == "2")
  35.                 {
  36.                     int elementAtTop = stack.Pop();
  37.                     int currentMaxNumber = maxNumbers.Peek();
  38.                     if (elementAtTop == currentMaxNumber)
  39.                     {
  40.                         maxNumbers.Pop();
  41.                         if (maxNumbers.Count > 0)
  42.                         {
  43.                             maxElement = maxNumbers.Peek();
  44.                         }
  45.  
  46.                         else
  47.                         {
  48.                             maxElement = int.MinValue;
  49.                         }
  50.                     }
  51.                 }
  52.  
  53.                 else
  54.                 {
  55.                     Console.WriteLine(maxNumbers.Peek());
  56.                 }
  57.             }
  58.         }
  59.     }
  60. }
Advertisement
Add Comment
Please, Sign In to add comment