Advertisement
krasi1105

Sum Adjacent Equal Numbers

May 12th, 2017
552
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.50 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3.  
  4. public class Program
  5. {
  6.     public static void Main()
  7.     {
  8.         var numbers = Console.ReadLine()
  9.             .Split()
  10.             .Select(double.Parse)
  11.             .ToArray();
  12.  
  13.         bool[] numbersRemoved = new bool[numbers.Length];
  14.         while (true)
  15.         {
  16.             bool foundAdjacent = false;
  17.             int index = 0;
  18.             while (index < numbers.Length - 1)
  19.             {
  20.                 if (numbersRemoved[index])
  21.                 {
  22.                     index++;
  23.                     continue;
  24.                 }
  25.  
  26.                 var nextFreeIndex = index + 1;
  27.                 for (int j = index + 1; j < numbers.Length - 1 && numbersRemoved[j]; j++)
  28.                 {
  29.                     nextFreeIndex = j + 1;
  30.                 }
  31.  
  32.                 if (numbersRemoved[nextFreeIndex])
  33.                 {
  34.                     break;
  35.                 }
  36.                 if (numbers[index] == numbers[nextFreeIndex])
  37.                 {
  38.                     numbers[index] += numbers[index];
  39.                     numbersRemoved[nextFreeIndex] = true;
  40.                     foundAdjacent = true;
  41.                 }
  42.  
  43.                 index = nextFreeIndex;
  44.             }
  45.  
  46.             if (!foundAdjacent)
  47.             {
  48.                 break;
  49.             }
  50.         }
  51.        
  52.         for (int i = 0; i < numbers.Length; i++)
  53.         {
  54.             if (numbersRemoved[i])
  55.             {
  56.                 continue;
  57.             }
  58.             Console.WriteLine($"{numbers[i]} ");
  59.         }
  60.        
  61.     }
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement