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));
- evenBitsFirstNumber |= bitOnEvenPositionFirstN << (j);
- bitOnEvenPositionSecondN = 1L & (numbers[i + 1] >> (j));
- evenBitsSecondNumber |= bitOnEvenPositionSecondN << (j);
- }
- numbers[i] |= evenBitsSecondNumber;
- numbers[i + 1] |= evenBitsFirstNumber;
- numbers[i] = ~numbers[i];
- numbers[i+1] = ~numbers[i+1];
- numbers[i] ^= 1L << 63;
- numbers[i+1] ^= 1L << 63;
- //Output
- Console.WriteLine(numbers[i]);
- Console.WriteLine(Convert.ToString(numbers[i], 2).PadLeft(63,'0'));
- Console.WriteLine(numbers[i + 1]);
- Console.WriteLine(Convert.ToString(numbers[i + 1], 2).PadLeft(63, '0'));
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement