Tak zwane zjawisko Will Rogers opisuje sposób dostrajania statystyki poprzez podniesienie średniej w dwóch (wielu) zestawach, gdy jeden element jest przenoszony między dwoma zestawami. Jako prosty przykład rozważ dwa zestawy
A = {1, 2, 3}
B = {4, 5, 6}
Ich średnie arytmetyczne są 2
i 5
, odpowiednio. Jeśli przeniesiemy 4
do A
:
A = {1, 2, 3, 4}
B = {5, 6}
Teraz są średnie 2.5
i 5.5
, odpowiednio, więc obie średnie zostały podniesione przez proste przegrupowanie.
Jako kolejny przykład rozważ
A = {3, 4, 5, 6} --> A = {3, 5, 6}
B = {2, 3, 4, 5} --> B = {2, 3, 4, 4, 5}
Z drugiej strony nie jest możliwe podniesienie obu średnich dla zbiorów
A = {1, 5, 9}
B = {4, 5, 7, 8}
Wyzwanie
Biorąc pod uwagę dwie listy nieujemnych liczb całkowitych, określ, czy możliwe jest podniesienie obu średnich, przenosząc jedną liczbę całkowitą z jednej listy na drugą.
Średnia pustej listy nie jest zdefiniowana, więc jeśli jedna z list zawiera tylko jeden element, tego elementu nie można przenieść.
Możesz napisać program lub funkcję, pobierając dane wejściowe przez STDIN (lub najbliższą alternatywę), argument wiersza poleceń lub argument funkcji i wypisując wynik przez STDOUT (lub najbliższą alternatywę), wartość zwracaną funkcji lub parametr funkcji (wyjściowej).
Dane wejściowe mogą być pobierane w dowolnym dogodnym formacie ciągu lub listy.
Nie można zakładać, że elementy na każdej liście są unikalne, ani że są posortowane. Możesz założyć, że obie listy zawierają co najmniej jeden element.
Wyjście powinno być zgodne z prawdą, jeśli obie wartości średnie można podnieść, przesuwając jedną liczbę całkowitą, a fałsz w przeciwnym razie.
To jest kod golfowy, więc wygrywa najkrótsza odpowiedź (w bajtach).
Przypadki testowe
Prawda:
[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]
Liderów
Oto fragment kodu, który pozwala wygenerować zarówno zwykłą tabelę wyników, jak i przegląd zwycięzców według języka.
Aby upewnić się, że twoja odpowiedź się pojawi, zacznij od nagłówka, korzystając z następującego szablonu Markdown:
# Language Name, N bytes
gdzie N
jest rozmiar twojego zgłoszenia. Jeśli poprawisz swój wynik, możesz zachować stare wyniki w nagłówku, przekreślając je. Na przykład:
# 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
i 9
powyżej, które mogłyby podnieść obie średnie, ale nie można zrobić poprzez przeniesienie jednego.