Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- class Program
- {
- static void Main()
- {
- int n = int.Parse(Console.ReadLine());
- string[] paths = new string[n];
- int[] numbers = new int[] { 0, 0, 0, 0, 0, 0, 0, 0 };
- int position = 0;
- for (int i = 0; i < n; i++)
- {
- paths[i] = Console.ReadLine();
- }
- for (int i = 0; i < paths.Length; i++)
- {
- int bitToCheck;
- string[] directions = paths[i].Split(',');
- switch (directions[0])
- {
- case "0":
- bitToCheck = (numbers[0] & (1 << 3)) >> 3;
- if (bitToCheck == 0)
- {
- numbers[0] |= (1 << 3);
- }
- else if (bitToCheck == 1)
- {
- numbers[0] &= ~(1 << 3);
- }
- position = 3;
- break;
- case "1":
- bitToCheck = (numbers[0] & (1 << 2)) >> 2;
- if (bitToCheck == 0)
- {
- numbers[0] |= (1 << 2);
- }
- else if (bitToCheck == 1)
- {
- numbers[0] &= ~(1 << 2);
- }
- position = 2;
- break;
- case "2":
- bitToCheck = (numbers[0] & (1 << 1)) >> 1;
- if (bitToCheck == 0)
- {
- numbers[0] |= (1 << 1);
- }
- else if (bitToCheck == 1)
- {
- numbers[0] &= ~(1 << 1);
- }
- position = 1;
- break;
- case "3":
- bitToCheck = numbers[0] & 1;
- if (bitToCheck == 0)
- {
- numbers[0] |= 1;
- }
- else if (bitToCheck == 1)
- {
- numbers[0] &= ~1;
- }
- position = 0;
- break;
- default:
- break;
- }
- for (int j = 1; j < 8; j++)
- {
- switch (directions[j])
- {
- case "0":
- bitToCheck = (numbers[j] & (1 << position)) >> position;
- if (bitToCheck == 0)
- {
- numbers[j] |= (1 << position);
- }
- else if (bitToCheck == 1)
- {
- numbers[j] &= ~(1 << position);
- }
- break;
- case "+1":
- position--;
- bitToCheck = (numbers[j] & (1 << position)) >> position;
- if (bitToCheck == 0)
- {
- numbers[j] |= (1 << position);
- }
- else if (bitToCheck == 1)
- {
- numbers[j] &= ~(1 << position);
- }
- break;
- case "-1":
- position++;
- bitToCheck = (numbers[j] & (1 << position)) >> position;
- if (bitToCheck == 0)
- {
- numbers[j] |= (1 << position);
- }
- else if (bitToCheck == 1)
- {
- numbers[j] &= ~(1 << position);
- }
- break;
- default:
- break;
- }
- }
- }
- int sum = 0;
- foreach (int number in numbers)
- {
- sum += number;
- }
- string binary = Convert.ToString(sum, 2);
- Console.WriteLine(binary);
- string hexademical = Convert.ToString(sum, 16).ToUpper();
- Console.WriteLine(hexademical);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement