Advertisement
Guest User

Double Downs

a guest
Aug 27th, 2014
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.18 KB | None | 0 0
  1. using System;
  2.  
  3. class DoubleDowns
  4. {
  5.     static void Main()
  6.     {
  7.         int n = int.Parse(Console.ReadLine());
  8.         int[] bits = new int[n];
  9.         int rightDiagonal = 0;
  10.         int leftDiagonal = 0;
  11.         int vertical = 0;
  12.  
  13.         for (int i = 0; i < bits.Length; i++)
  14.         {
  15.             bits[i] = int.Parse(Console.ReadLine());
  16.         }
  17.  
  18.         for (int i = 0; i < n - 1; i++)
  19.         {
  20.             string bit1 = Convert.ToString(bits[i], 2);
  21.             bit1 = bit1.PadLeft(32, '0');
  22.             string bit2 = Convert.ToString(bits[i + 1], 2);
  23.             bit2 = bit2.PadLeft(32, '0');
  24.  
  25.             for (int j = 0; j < bit1.Length; j++)
  26.             {
  27.                 if (j == 0)
  28.                 {
  29.                     for (int k = j; k < j + 2; k++)
  30.                     {
  31.                         if (bit1[j] == '1' && bit1[j] == bit2[k])
  32.                         {
  33.                             if (k == j)
  34.                             {
  35.                                 vertical++;
  36.                                 continue;
  37.                             }
  38.                             else if (k == j + 1)
  39.                             {
  40.                                 rightDiagonal++;
  41.                                 continue;
  42.                             }
  43.                         }
  44.                     }
  45.                 }
  46.  
  47.                 else if (j > 0 && j < 31)
  48.                 {
  49.                     for (int k = j - 1; k < j + 2; k++)
  50.                     {
  51.                         if (bit1[j] == '1' && bit1[j] == bit2[k])
  52.                         {
  53.                             if (k == j - 1)
  54.                             {
  55.                                 leftDiagonal++;
  56.                                 continue;
  57.                             }
  58.                             else if (k == j)
  59.                             {
  60.                                 vertical++;
  61.                                 continue;                                
  62.                             }
  63.                             else if (k == j + 1)
  64.                             {
  65.                                 rightDiagonal++;
  66.                                 continue;
  67.                             }
  68.  
  69.                         }
  70.                        
  71.                     }
  72.                 }
  73.                 else if (j == 31)
  74.                 {
  75.                     for (int k = j - 1; k < j + 1; k++)
  76.                     {
  77.                         if (bit1[j] == '1' && bit1[j] == bit2[k])
  78.                         {
  79.                             if (k == j - 1)
  80.                             {
  81.                                 leftDiagonal++;
  82.                                 continue;
  83.                             }
  84.                             else if (k == j)
  85.                             {
  86.                                 vertical++;
  87.                                 continue;                                
  88.                             }
  89.  
  90.                         }
  91.                        
  92.                     }
  93.                 }
  94.             }
  95.         }
  96.         Console.WriteLine(rightDiagonal);
  97.         Console.WriteLine(leftDiagonal);
  98.         Console.WriteLine(vertical);
  99.     }
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement