Guest User

10.Crossroads

a guest
May 29th, 2020
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.30 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace _10_Crossroads
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             int greenlightDuration = int.Parse(Console.ReadLine());
  11.             int freeWindowDuration = int.Parse(Console.ReadLine());
  12.             Queue<string> cars = new Queue<string>();
  13.             string command;
  14.             int carsPassed = 0;
  15.             while ((command = Console.ReadLine())!="END")
  16.             {
  17.                 if (command!="green")
  18.                 {
  19.                     cars.Enqueue(command);
  20.                 }
  21.                 else
  22.                 {
  23.                     int green = greenlightDuration;
  24.                     int freeWindow = freeWindowDuration;
  25.                     while (green>0 && cars.Count!=0)
  26.                     {
  27.                         string car = cars.Peek();
  28.                         Queue<char> currCar = new Queue<char>(cars.Dequeue());
  29.                         while (green > 0)
  30.                         {
  31.                             if (!currCar.TryDequeue(out char result))
  32.                             {
  33.                                 carsPassed++;
  34.                                 break;
  35.                             }
  36.                             green--;
  37.                         }
  38.                         if (currCar.Count!=0)
  39.                         {
  40.                             while (freeWindow>0)
  41.                             {
  42.                                 if (!currCar.TryDequeue(out char result))
  43.                                 {
  44.                                     carsPassed++;
  45.                                     break;
  46.                                 }
  47.                                 freeWindow--;
  48.                             }
  49.                             if (currCar.Count!=0)
  50.                             {
  51.                                 Console.WriteLine("A crash happened!");
  52.                                 Console.WriteLine($"{car} was hit at {currCar.Dequeue()}.");
  53.                                 return;
  54.                             }
  55.                         }
  56.                     }
  57.                 }
  58.             }
  59.             Console.WriteLine("Everyone is safe.");
  60.             Console.WriteLine($"{carsPassed} total cars passed the crossroads.");
  61.         }
  62.     }
  63. }
Add Comment
Please, Sign In to add comment