ivanov_ivan

WiggleWiggle_SecondSolution

Jan 15th, 2016
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.76 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace WiggleWiggle
  8. {
  9.     class WiggleWiggle
  10.     {
  11.         static void Main()
  12.         {
  13.             long[] numbers = Console.ReadLine().Split(' ').Select(long.Parse).ToArray();
  14.  
  15.             for(int i = 1; i < numbers.Length; i+=2)
  16.             {
  17.                 for(int a = 0; a < 64; a+=2)
  18.                 {
  19.                     long bitFromFirstNumber = ( numbers[i - 1] >> a ) & 1L;
  20.                     long bitFromSecondNUmber = ( numbers[i] >> a ) & 1L;
  21.  
  22.                     if(bitFromFirstNumber != bitFromSecondNUmber)
  23.                     {
  24.                         if(bitFromSecondNUmber == 1)
  25.                         {
  26.                             numbers[i - 1] |= ( bitFromSecondNUmber << a );
  27.                             numbers[i] ^= ( 1L << a );
  28.                         }
  29.                         else
  30.                         {
  31.                             numbers[i] |= ( bitFromFirstNumber << a );
  32.                             numbers[i - 1] ^= ( 1L << a );
  33.                         }
  34.                     }
  35.                     else
  36.                     {
  37.                         continue;
  38.                     }
  39.                 }
  40.             }
  41.  
  42.             for(int num = 0; num < numbers.Length; num++)
  43.             {
  44.                 numbers[num] = ~numbers[num];
  45.                 numbers[num] &= ~( 1L << 63 );
  46.             }
  47.  
  48.             for(int b = 0; b < numbers.Length; b++)
  49.             {
  50.                 string number = Convert.ToString(numbers[b] , 2).PadLeft(63 , '0');
  51.                 long nums = Convert.ToInt64(number , 2);
  52.                 Console.WriteLine(nums + " " + number);
  53.             }
  54.         }
  55.     }
  56. }
Advertisement
Add Comment
Please, Sign In to add comment