Advertisement
Guest User

Parking System - Niki Lubomirov's Code

a guest
Jun 28th, 2018
383
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.61 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3.  
  4. public class Program
  5. {
  6.     public static void Main()
  7.     {
  8.         string[] size = Console.ReadLine().Split();
  9.         int r = int.Parse(size[0]);
  10.         int c = int.Parse(size[1]);
  11.  
  12.         int[][] parking = new int[r][];
  13.  
  14.         string input;
  15.         while ((input = Console.ReadLine()) != "stop")
  16.         {
  17.             int carRow = int.Parse(input.Split()[0]);
  18.             int parkRow = int.Parse(input.Split()[1]);
  19.             int parkCol = int.Parse(input.Split()[2]);
  20.  
  21.             if (parking[parkRow] == null)
  22.             {
  23.                 parking[parkRow] = new int[c];
  24.             }
  25.  
  26.             if (parking[parkRow].Skip(1).All(x => x == 1))
  27.             {
  28.                 Console.WriteLine($"Row {parkRow} full");
  29.                 continue;
  30.             }
  31.  
  32.             if (parking[parkRow][parkCol] == 1)
  33.             {
  34.                 parkCol = GetNearestFreeCol(parking, parkRow, parkCol);
  35.             }
  36.  
  37.             parking[parkRow][parkCol] = 1;
  38.  
  39.             int distance = Math.Abs(carRow - parkRow) + parkCol + 1;
  40.             Console.WriteLine(distance);
  41.         }
  42.     }
  43.  
  44.     private static int GetNearestFreeCol(int[][] parking, int parkRow, int parkCol)
  45.     {
  46.         for (int i = 1; i < parking[parkRow].Length; i++)
  47.         {
  48.             if (parkCol > i && parking[parkRow][parkCol - i] != 1)
  49.                 return parkCol - i;
  50.             if (parkCol + i < parking[parkRow].Length && parking[parkRow][parkCol + i] != 1)
  51.                 return parkCol + i;
  52.         }
  53.         return -1; // It's just needed. Will never be returned
  54.     }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement