Nackey

Lego Blocks

Jan 31st, 2018
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.44 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3. using System.Collections.Generic;
  4.  
  5. class Lego
  6. {
  7.     static void Main()
  8.     {
  9.         int numberOfRows = int.Parse(Console.ReadLine());
  10.  
  11.         var firstJagged = FillTheRows(numberOfRows);
  12.         var secondJagged = FillTheRows(numberOfRows);
  13.  
  14.         for (int row = 0; row < numberOfRows; row++)
  15.         {
  16.             secondJagged[row] = secondJagged[row].Reverse().ToArray();
  17.         }
  18.  
  19.         var completedJag = MakeOneFromTwoMatrix(firstJagged, secondJagged);
  20.  
  21.         if (IsItFit(completedJag))
  22.         {
  23.             foreach (var row in completedJag)
  24.             {
  25.                 Console.WriteLine($"[{string.Join(", ", row)}]");
  26.             }
  27.         }
  28.         else
  29.         {
  30.             Console.WriteLine($"The total number of cells is: {GetNumberOfCells(completedJag)}");
  31.         }
  32.     }
  33.  
  34.     private static int GetNumberOfCells(int[][] completedJag)
  35.     {
  36.         int totalSum = 0;
  37.         for (int row = 0; row < completedJag.GetLength(0); row++)
  38.         {
  39.             totalSum += completedJag[row].Length;
  40.         }
  41.         return totalSum;
  42.     }
  43.  
  44.     private static bool IsItFit(int[][] completedJag)
  45.     {
  46.         bool isIt = false;
  47.         for (int row = 0; row < completedJag.GetLength(0) - 1; row++)
  48.         {
  49.             if (completedJag[row].Length == completedJag[row + 1].Length)
  50.             {
  51.                 isIt = true;
  52.             }
  53.             else
  54.             {
  55.                 isIt = false;
  56.             }
  57.         }
  58.         return isIt;
  59.     }
  60.  
  61.     private static int[][] MakeOneFromTwoMatrix(int[][] firstJag, int[][] secondJag)
  62.     {
  63.         int[][] completedJag = new int[firstJag.GetLength(0)][];
  64.         var allElements = new List<int>();
  65.  
  66.         for (int row = 0; row < firstJag.GetLength(0); row++)
  67.         {
  68.             allElements.AddRange(firstJag[row]);
  69.             allElements.AddRange(secondJag[row]);
  70.             completedJag[row] = allElements.ToArray();
  71.             allElements.Clear();
  72.         }
  73.         return completedJag;
  74.     }
  75.  
  76.     private static int[][] FillTheRows(int numberOfRows)
  77.     {
  78.         var jagged = new int[numberOfRows][];
  79.         for (int row = 0; row < numberOfRows; row++)
  80.         {
  81.             jagged[row] = Console.ReadLine()
  82.                 .Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
  83.                 .Select(int.Parse)
  84.                 .ToArray();
  85.         }
  86.         return jagged;
  87.     }
  88. }
Advertisement
Add Comment
Please, Sign In to add comment