krasizorbov

Matrix Shuffling

Apr 24th, 2019
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.37 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3.  
  4. namespace Matrix_Shuffling
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             int[] nums = Console.ReadLine().Split(' ', StringSplitOptions.RemoveEmptyEntries).Select(int.Parse).ToArray();
  11.             int r = nums[0];
  12.             int c = nums[1];
  13.  
  14.             int x1 = 0;
  15.             int y1 = 0;
  16.             int x2 = 0;
  17.             int y2 = 0;
  18.  
  19.             string temp = string.Empty;
  20.             string[,] arr = new string[r, c];
  21.  
  22.             for (int i = 0; i < r; i++)
  23.             {
  24.                 string[] numbers = Console.ReadLine().Split(' ', StringSplitOptions.RemoveEmptyEntries).ToArray();
  25.  
  26.                 for (int j = 0; j < c; j++)
  27.                 {
  28.                     arr[i, j] = numbers[j];
  29.                 }
  30.             }
  31.  
  32.             string[] input = Console.ReadLine().Split(' ', StringSplitOptions.RemoveEmptyEntries).ToArray();
  33.  
  34.             while (input[0] != "END")
  35.             {
  36.                 if (input[0] == "swap")
  37.                 {
  38.                     if (input.Length == 5)
  39.                     {
  40.                         var isNumeric1 = false;
  41.                         var isNumeric2 = false;
  42.                         var isNumeric3 = false;
  43.                         var isNumeric4 = false;
  44.  
  45.                         isNumeric1 = int.TryParse(input[1], out int n1);
  46.                         isNumeric2 = int.TryParse(input[2], out int n2);
  47.                         isNumeric3 = int.TryParse(input[3], out int n3);
  48.                         isNumeric4 = int.TryParse(input[4], out int n4);
  49.  
  50.                         if (isNumeric1 && isNumeric2 && isNumeric3 && isNumeric4)
  51.                         {
  52.                             x1 = int.Parse(input[1]);
  53.                             y1 = int.Parse(input[2]);
  54.                             x2 = int.Parse(input[3]);
  55.                             y2 = int.Parse(input[4]);
  56.                         }
  57.                         else
  58.                         {
  59.                             Console.WriteLine("Invalid input!");
  60.  
  61.                         }
  62.  
  63.                         if ((x1 >= 0 && x1 < r) && (x2 >= 0 && x2 < r) && (y1 >= 0 && y1 < c) && (y2 >= 0 && y2 < c))
  64.                         {
  65.                             temp = arr[x1, y1];
  66.                             arr[x1, y1] = arr[x2, y2];
  67.                             arr[x2, y2] = temp;
  68.  
  69.                             for (int i = 0; i < r; i++)
  70.                             {
  71.                                 for (int j = 0; j < c; j++)
  72.                                 {
  73.                                     Console.Write(arr[i, j] + " ");
  74.                                 }
  75.                                 Console.WriteLine();
  76.                             }
  77.                         }
  78.                         else
  79.                         {
  80.                             Console.WriteLine("Invalid input!");
  81.                         }
  82.                     }
  83.                     else
  84.                     {
  85.                         Console.WriteLine("Invalid input!");
  86.                     }
  87.                 }
  88.                 else
  89.                 {
  90.                     Console.WriteLine("Invalid input!");                  
  91.                 }
  92.  
  93.                 input = Console.ReadLine().Split(' ', StringSplitOptions.RemoveEmptyEntries).ToArray();
  94.             }
  95.         }
  96.     }
  97. }
Advertisement
Add Comment
Please, Sign In to add comment