Elixir Triangle
defmodule Triangle do
  def triangle(a) when length(a) < 3, do: 0

  def triangle(a) do
    sorted = Enum.sort(a)
    c = length(sorted)

    found =
      Enum.any?(0..(c - 3), fn i ->
        v = Enum.at(sorted, i)
        v > 0 and v > Enum.at(sorted, i + 2) - Enum.at(sorted, i + 1)
      end)

    if found, do: 1, else: 0
  end
end

This sorts the values and checks nearby triples, because a valid triangle only needs one local match after sorting.