svetlozar_kirkov

Bit Swapper (100/100)

Nov 12th, 2014
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.54 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace BitSwapper
  5. {
  6.     class BitSwapper
  7.     {
  8.         static void Main()
  9.         {
  10.             uint first = uint.Parse(Console.ReadLine());
  11.             uint second = uint.Parse(Console.ReadLine());
  12.             uint third = uint.Parse(Console.ReadLine());
  13.             uint fourth = uint.Parse(Console.ReadLine());
  14.             string[] binaries = new string[4];
  15.             binaries[0] = Convert.ToString(first, 2).PadLeft(32, '0');
  16.             binaries[1] = Convert.ToString(second, 2).PadLeft(32, '0');
  17.             binaries[2] = Convert.ToString(third, 2).PadLeft(32, '0');
  18.             binaries[3] = Convert.ToString(fourth, 2).PadLeft(32, '0');
  19.             List<List<string>> numsChunks = new List<List<string>>();
  20.             for (int i = 0; i < 4; i++)
  21.             {
  22.                 List<string> tempNum = new List<string>();
  23.                 for (int j = 0, k=0; j < 8; j++,k+=4)
  24.                 {
  25.                     string temp = binaries[i][k].ToString() +
  26.             binaries[i][k + 1].ToString() + binaries[i][k + 2].ToString() +
  27.             binaries[i][k + 3].ToString();
  28.                     tempNum.Add(temp);
  29.                 }
  30.                 numsChunks.Add(tempNum);
  31.             }
  32.            
  33.             while (true)
  34.             {
  35.                 string firstPart = Console.ReadLine();
  36.                 if (firstPart=="End")
  37.                 {
  38.                     break;
  39.                 }
  40.                 string secondPart = Console.ReadLine();
  41.                 int firstIndex = Convert.ToInt32(firstPart[0].ToString());
  42.                 int secondIndex = Convert.ToInt32(secondPart[0].ToString());
  43.                 int firstChunk = Convert.ToInt32(firstPart[2].ToString());
  44.                 int secondChunk = Convert.ToInt32(secondPart[2].ToString());
  45.                 string firstExtract = numsChunks[firstIndex][7 - firstChunk];
  46.                 string secondExtract = numsChunks[secondIndex][7 - secondChunk];
  47.                 numsChunks[firstIndex][7 - firstChunk] = secondExtract;
  48.                 numsChunks[secondIndex][7 - secondChunk] = firstExtract;
  49.             }
  50.  
  51.             foreach (var vari in numsChunks)
  52.             {
  53.                 string[] nums=new string[8];
  54.                 int i = 0;
  55.                 foreach (var str in vari)
  56.                 {
  57.                     nums[i] = str;
  58.                     i++;
  59.                 }
  60.                 string final = string.Join("", nums);
  61.                 Console.WriteLine(Convert.ToUInt32(final,2));
  62.             }
  63.         }
  64.     }
  65. }
Advertisement
Add Comment
Please, Sign In to add comment