Advertisement
Guest User

Untitled

a guest
Oct 7th, 2016
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.13 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 emergency_repairs
  8. {
  9.       class Emergency
  10.       {
  11.             static void Main(string[] args)
  12.             {
  13.                   ulong num = ulong.Parse(Console.ReadLine());
  14.                   ulong kits = ulong.Parse(Console.ReadLine());
  15.                   ulong attacks = ulong.Parse(Console.ReadLine());
  16.                   while (attacks > 0)
  17.                   {
  18.                         int attBit = int.Parse(Console.ReadLine());
  19.                         num = num & ~(ulong)(1L << attBit);
  20.                         attacks--;
  21.                   }
  22.                   for (int i = 0; i < 63; i++)
  23.                   {
  24.                         ulong currentbit = (num >> i) & 1L;
  25.                         ulong nextbit = (num >> i + 1) & 1L;
  26.                         if (currentbit == 0 && nextbit == 0)
  27.                         {
  28.                               if (kits >= 1)
  29.                               {
  30.                                     //Console.WriteLine(Convert.ToString((long)num, 2).PadLeft(64, '0'));
  31.                                     num = num | (ulong)(1L << i);
  32.                                     kits--;
  33.                                     while (kits >= 1 && nextbit == 0)
  34.                                     {
  35.                                           ////Console.WriteLine(Convert.ToString((long)num, 2).PadLeft(64, '0'));
  36.                                           i++;
  37.                                           num = num | (ulong)(1L << i);                                          
  38.                                           nextbit = (num >> i+1) & 1L;
  39.                                           kits--;
  40.                                     }
  41.  
  42.                                     //Console.WriteLine(Convert.ToString((long)num, 2).PadLeft(64, '0'));
  43.                               }      
  44.                         }
  45.                   }
  46.                   //Console.WriteLine(Convert.ToString((long)num, 2).PadLeft(64, '0'));
  47.                   Console.WriteLine(num);
  48.  
  49.             }
  50.       }
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement