using System.Collections.Generic;
public static void Main()
Queue<long> range = new Queue<long>();
foreach(var line in GetLines(input))
long num = Int64.Parse(line);
while(targetSum + num > res && range.Count() > 0)
long r = range.Dequeue();
actualResult = min + max;
Console.WriteLine("Done result is {0}.", actualResult);
private static IEnumerable<string> GetLines(string input)
var inputReader = new StringReader(input);
string currentLine = null;
while((currentLine = inputReader.ReadLine()) != null)
yield return currentLine;
private static bool CanDerive(long[] state, long num)
HashSet<long> stateLookup = new HashSet<long>(state);
for(int i = 0; i < state.Length && stateLookup.Count > 0; i++)
stateLookup.Remove(state[i]);
if(stateLookup.Contains(num - state[i]))
private static string input = @"50