using System.Collections.Generic;
public class QueueViaStacks{
public Stack<int> FastEnqueueStack;
public Stack<int> FastDequeueStack;
FastEnqueueStack = new Stack<int>();
FastDequeueStack = new Stack<int>();
private void Move(Stack<int> source, Stack<int> target){
while (source.Count != 0){
target.Push(source.Pop());
public void Enqueue(int val){
if (FastEnqueueStack.Count == 0){
Move(FastDequeueStack, FastEnqueueStack);
FastEnqueueStack.Push(val);
if (FastDequeueStack.Count == 0){
Move(FastEnqueueStack, FastDequeueStack);
public static void Main()
Console.WriteLine("Hello World");