Provides for a method to select resources from a list such that the returned list will contain resources that can fully fill the amount needed or the list will be empty.