O chamado fenômeno de Will Rogers descreve uma maneira de ajustar as estatísticas aumentando a média em dois (multi) conjuntos quando um elemento é movido entre os dois conjuntos. Como um exemplo simples, considere os dois conjuntos
A = {1, 2, 3}
B = {4, 5, 6}
Seus meios aritméticos são 2
e 5
, respectivamente. Se passarmos 4
para A
:
A = {1, 2, 3, 4}
B = {5, 6}
Agora, as médias são 2.5
e 5.5
, respectivamente, portanto, ambas as médias foram aumentadas através de um simples reagrupamento.
Como outro exemplo, considere
A = {3, 4, 5, 6} --> A = {3, 5, 6}
B = {2, 3, 4, 5} --> B = {2, 3, 4, 4, 5}
Por outro lado, não é possível aumentar as duas médias para os conjuntos
A = {1, 5, 9}
B = {4, 5, 7, 8}
O desafio
Dadas duas listas de números inteiros não negativos, determine se é possível aumentar as duas médias movendo um único número inteiro de uma lista para outra.
A média de uma lista vazia não está definida; portanto, se uma das listas contiver apenas um elemento, esse elemento não poderá ser movido.
Você pode escrever um programa ou função, recebendo entrada via STDIN (ou alternativa mais próxima), argumento da linha de comando ou argumento da função e emitindo o resultado via STDOUT (ou alternativa mais próxima), valor de retorno da função ou parâmetro da função (saída).
A entrada pode ser obtida em qualquer formato conveniente de sequência ou lista.
Você não deve assumir que os elementos em cada lista são únicos, nem que são classificados. Você pode assumir que ambas as listas contêm pelo menos um elemento.
A saída deve ser verdadeira se ambas as médias puderem ser aumentadas movendo um único número inteiro e, caso contrário, falsificará .
Isso é código de golfe, então a resposta mais curta (em bytes) vence.
Casos de teste
Verdade:
[1], [2, 3]
[1, 2, 3], [4, 5, 6]
[3, 4, 5, 6], [2, 3, 4, 5]
[6, 5, 9, 5, 6, 0], [6, 2, 0, 9, 5, 2]
[0, 4], [9, 1, 0, 2, 8, 0, 5, 5, 4, 9]
Falsy:
[1], [2]
[2, 4], [5]
[1, 5], [2, 3, 4, 5]
[2, 1, 2, 3, 1, 3], [5, 1, 6]
[4, 4, 5, 2, 4, 0], [9, 2, 10, 1, 9, 0]
Classificação
Aqui está um snippet de pilha para gerar uma classificação regular e uma visão geral dos vencedores por idioma.
Para garantir que sua resposta seja exibida, inicie-a com um título, usando o seguinte modelo de remarcação:
# Language Name, N bytes
onde N
está o tamanho do seu envio. Se você melhorar sua pontuação, poderá manter as pontuações antigas no título, identificando-as. Por exemplo:
# Ruby, <s>104</s> <s>101</s> 96 bytes
<script>site = 'meta.codegolf'; postID = 5314; isAnswer = true; QUESTION_ID = 53913</script><script src='https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js'></script><script>jQuery(function(){var u='https://api.stackexchange.com/2.2/';if(isAnswer)u+='answers/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJeRCD';else u+='questions/'+postID+'?order=asc&sort=creation&site='+site+'&filter=!GeEyUcJFJO6t)';jQuery.get(u,function(b){function d(s){return jQuery('<textarea>').html(s).text()};function r(l){return new RegExp('<pre class="snippet-code-'+l+'\\b[^>]*><code>([\\s\\S]*?)</code></pre>')};b=b.items[0].body;var j=r('js').exec(b),c=r('css').exec(b),h=r('html').exec(b);if(c!==null)jQuery('head').append(jQuery('<style>').text(d(c[1])));if (h!==null)jQuery('body').append(d(h[1]));if(j!==null)jQuery('body').append(jQuery('<script>').text(d(j[1])))})})</script>
1
e 9
mais, o que elevaria ambas as médias, mas você não pode fazê-lo, movendo um único.