Classificação de cadeias por comprimento e lexicograficamente

C# Hard sorting

Tarefa «Classificação de cadeias por comprimento e lexicograficamente»

Dada uma string contendo palavras separadas por espaços. É necessário ordenar as palavras primeiro pelo comprimento crescente e, em caso de comprimento igual, em ordem lexicográfica (decrescente). Exibir as palavras ordenadas separadas por espaço. Limitações: o comprimento da string não excede 10^5 caracteres, as palavras consistem em letras minúsculas do alfabeto latino. A solução deve ser eficiente, utilizando métodos de ordenação embutidos.

Formato de Entrada

Uma string contendo palavras de letras minúsculas do alfabeto latino, separadas exatamente por um espaço. O comprimento da string não ultrapassa 100000 caracteres.

Formato de Saída

Uma string contendo as mesmas palavras, ordenadas pelo comprimento crescente e, em caso de comprimento igual, em ordem lexicográfica decrescente. As palavras são separadas exatamente por um espaço.

Exemplos

Exemplo 1

ENTRADA
cat dog apple banana
SAÍDA
dog cat apple banana

Exemplo 2

ENTRADA
a bb ccc dd
SAÍDA
a dd bb ccc

Exemplo 3

ENTRADA
5 12 34 21 43 15
SAÍDA
5

Exemplo 4

ENTRADA
{"a":1,"b":{"c":2}} {"a":2,"b":{"d":3}}
SAÍDA
{"a":1,"b":{"c":2}}
main.cs