Advertisement
svephoto

Basic Stack Operations [C#]

Nov 23rd, 2021
1,047
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.80 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace BasicStackOperations
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             int[] commands = Console.ReadLine()            
  12.                 .Split(" ", StringSplitOptions.RemoveEmptyEntries)
  13.                 .Select(int.Parse)
  14.                 .ToArray();
  15.        
  16.             int[] numbers = Console.ReadLine()
  17.                 .Split(" ", StringSplitOptions.RemoveEmptyEntries)            
  18.                 .Select(int.Parse)
  19.                 .ToArray();
  20.  
  21.             Stack<int> stackOfNumbers = new Stack<int>();
  22.  
  23.             for (int i = 0; i < commands[0]; i++)
  24.             {
  25.                 stackOfNumbers.Push(numbers[i]);
  26.             }
  27.  
  28.             for (int i = 0; i < commands[1]; i++)
  29.             {
  30.                 stackOfNumbers.Pop();
  31.             }
  32.  
  33.             int smallestNumberInStack = int.MaxValue;
  34.             bool printSmallestNumber = false;              
  35.            
  36.             while (stackOfNumbers.Count != 0 && !printSmallestNumber)
  37.             {
  38.                 int currentNumber = stackOfNumbers.Pop();
  39.  
  40.                 if (currentNumber == commands[2])
  41.                 {
  42.                     printSmallestNumber = true;
  43.                 }
  44.  
  45.                 if (currentNumber < smallestNumberInStack)
  46.                 {
  47.                     smallestNumberInStack = currentNumber;
  48.                 }
  49.             }
  50.    
  51.             if (printSmallestNumber)
  52.             {
  53.                 Console.WriteLine("true");
  54.             }
  55.             else
  56.             {
  57.                 smallestNumberInStack = smallestNumberInStack == int.MaxValue ? 0 : smallestNumberInStack;
  58.  
  59.                 Console.WriteLine(smallestNumberInStack);
  60.             }
  61.         }
  62.     }
  63. }
  64.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement