Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Globalization;
- using System.Threading;
- public class BitPaths
- {
- public static void Main()
- {
- Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
- checked
- {
- int countOfPaths = int.Parse(Console.ReadLine());
- int[] rowNums = new int[8];
- for (int i = 0; i < countOfPaths; i++)
- {
- string inputLine = Console.ReadLine();
- string[] numStr = inputLine.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
- int startBitPosition = 3 - int.Parse(numStr[0]);
- int bitValue = (rowNums[0] >> startBitPosition) & 1;
- if (bitValue == 0)
- {
- rowNums[0] |= 1 << startBitPosition;
- }
- else
- {
- int bitMask = 1 << startBitPosition;
- rowNums[0] &= ~bitMask;
- }
- int previousPos = startBitPosition;
- for (int row = 1; row < rowNums.Length; row++)
- {
- int number = rowNums[row];
- int bitPosition = previousPos + ((-1) * int.Parse(numStr[row]));
- bitValue = (number >> bitPosition) & 1;
- if (bitValue == 0)
- {
- rowNums[row] = number | (1 << bitPosition);
- }
- else
- {
- int bitMask = 1 << bitPosition;
- rowNums[row] = number & ~bitMask;
- }
- previousPos = bitPosition;
- }
- }
- int sumNums = 0;
- foreach (int num in rowNums)
- {
- sumNums += num;
- }
- string binaryNum = Convert.ToString(sumNums, 2);
- Console.WriteLine(binaryNum);
- Console.WriteLine("{0:X}", sumNums);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement