using System.Collections.Generic;
public static bool CanTwoMoviesFillFlight(int[] movieLengths, int flightLength)
HashSet<int> movieLengthsSeen = new HashSet<int>();
foreach(int movieLength in movieLengths)
if(movieLengthsSeen.Contains(flightLength - movieLength))
movieLengthsSeen.Add(movieLength);
var result = CanTwoMoviesFillFlight(new int[] { 2, 4 }, 1);
Console.WriteLine(result == false);
result = CanTwoMoviesFillFlight(new int[] { 2, 4 }, 6);
Console.WriteLine(result == true);
result = CanTwoMoviesFillFlight(new int[] { 3, 8 }, 6);
Console.WriteLine(result == false);
result = CanTwoMoviesFillFlight(new int[] { 3, 8, 3 }, 6);
Console.WriteLine(result == true);
result = CanTwoMoviesFillFlight(new int[] { 1, 2, 3, 4, 5, 6 }, 7);
Console.WriteLine(result == true);
result = CanTwoMoviesFillFlight(new int[] { 4, 3, 2 }, 5);
Console.WriteLine(result == true);
result = CanTwoMoviesFillFlight(new int[] { 6 }, 6);
Console.WriteLine(result == false);
result = CanTwoMoviesFillFlight(new int[] { }, 6);
Console.WriteLine(result == false);