Solução por Leonardo Paes
Para resolver este problema, utilizaremos programação dinâmica.
Seja $$dp[i][j]$$ a soma máxima de alturas de um time que começa com o $$j$$-ésimo estudante da fileira $$i$$ e pode escolher jogadores com índices maiores que $$j$$. Logo, a resposta de nosso problema será: $$max(dp[1][1], dp[2][1])$$.
Seja $$i’$$ uma representação da fileira oposta a fileira $$i$$, ou seja, se $$i = 1, i’ = 2$$, e vice-versa. Para calcularmos a recursão, teremos: $$dp[i][j] = h[i][j] + max(dp[i’][j+1], dp[i’][j+2])$$, onde $$h[i][j]$$ é a altura do $$j$$-ésimo estudante da fileira $$i$$.
Segue abaixo o código para melhor entendimento:
https://gist.github.com/Rockbet/79a3afcc1b7a822171979f3d765ebadc
