Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace WiggleWiggle
- {
- class WiggleWiggle
- {
- static void Main()
- {
- //input
- string[] inputNumbers = Console.ReadLine().Split(' ');
- long[] numbers = new long[inputNumbers.Length];
- for (int i = 0; i < inputNumbers.Length; i++)
- {
- numbers[i] = long.Parse(inputNumbers[i]);
- }
- //Calculation
- for (int i = 0; i < inputNumbers.Length; i += 2)
- {
- long bitOnEvenPositionFirstN = 0;
- long bitOnEvenPositionSecondN = 0;
- //long evenBitsFirstNumber = 0;
- //long evenBitsSecondNumber = 0;
- for (int j = 0; j < 64; j += 2)
- {
- bitOnEvenPositionFirstN = 1L & (numbers[i] >> (j));
- bitOnEvenPositionSecondN = 1L & (numbers[i + 1] >> (j));
- if (bitOnEvenPositionFirstN == bitOnEvenPositionSecondN)
- {
- continue;
- }
- else
- {
- if (bitOnEvenPositionFirstN > 0)
- {
- numbers[i] &= ~(bitOnEvenPositionFirstN << j);
- numbers[i + 1] |= bitOnEvenPositionFirstN << j;
- }
- else
- {
- numbers[i + 1] &= ~(bitOnEvenPositionSecondN << j);
- numbers[i] |= bitOnEvenPositionSecondN << j;
- }
- }
- }
- numbers[i] = ~numbers[i];
- numbers[i+1] = ~numbers[i+1];
- numbers[i] ^= 1L << 63;
- numbers[i+1] ^= 1L << 63;
- //Output
- Console.WriteLine($"{numbers[i]} {Convert.ToString(numbers[i], 2).PadLeft(63, '0')}");
- Console.WriteLine($"{numbers[i + 1]} {Convert.ToString(numbers[i + 1], 2).PadLeft(63, '0')}");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement