Найдите Мой Другой Жетон (Грабители)

  • Автор темы Svk50
  • Обновлено
  • 23, Oct 2024
  • #1

Полицейские темы

грабители,

Напишите программу на языке полицейского, используя строку P полицейского и свою собственную строку S, а количество каждой из них указано в сообщении полицейского. Ваша строка S не может превышать строку S полицейского в байтах.

Программа

Используя только строки P и S, напишите программу, которая принимает список из 5 или более неповторяющихся положительных целых чисел и возвращает их в таком порядке, что максимум списка находится в центре, элементы перед ним расположены в порядке возрастания и элементы после него располагаются в порядке убывания. Вы можете вывести любой список, соответствующий этим требованиям. Вы можете предположить, что список содержит нечетное количество элементов.

Примеры (ваши результаты могут отличаться):

 input: [1,2,3,4,5]
output: [1,2,5,4,3]

input: [7,6,5,4,3,2,1]
output: [2,4,6,7,5,3,1]

input: [1,3,5,7,9,2,4,6,8]
output: [1,2,3,7,9,8,6,5,4]
 

Для потомков, пожалуйста, укажите в своем ответе точную строку S и количество ее байтов и дайте ссылку на коп, который вы взламываете.

Подсчет очков

Большинство трещин побеждает.

#полицейские и грабители

Svk50


Рег
07 Oct, 2008

Тем
68

Постов
205

Баллов
555
  • 26, Oct 2024
  • #3

Питон 3, 21 + 33(32) байт

def f(a):a.sort();return a[1::2]+a[-1::-2]

Попробуйте онлайн!

Взломать это один. Строка S имеет размер 32 байта (на 1 короче, чем ожидалось).

@UWRFa ||answer||

JavaScript (Node.js), 63 байта

&

Попробуйте онлайн!

Трещины Вот этот.

Длина S-строки составляет 37 байт:

@

Моя функция просто сохраняет первую половину (округленную вниз) и меняет остальную часть. Например, учитывая UW , it first sorts RF (часть поста полицейского l4m2), тогда первая половина округляется в меньшую сторону, что является первым 5/2 | 0 = 2 элемента. Он переворачивает все остальное, давая a which indeed satisfies the question's requirements.

РЕДАКТИРОВАТЬ: @Arnauld сообщил мне о потенциальной экономии байтов, которую я не приму (и не приму другую экономию байтов), потому что я намеренно стремился к решению с длиной, точно соответствующей ожидаемой.

 

Motanik


Рег
03 Apr, 2020

Тем
78

Постов
198

Баллов
598
  • 26, Oct 2024
  • #4

JavaScript, 60 байт

Кряк 2-й версии вызов l4m2.

SN

Попробуйте онлайн!

Секретная строка имеет длину 33 байта (меньше ожидаемого решения в 36 байт):

SN:a;@UWRFa ||answer||

Дж, 10 байт, трещины Ответ Ионы

&@UWRFa

Попробуйте онлайн!

SN:a;R:a&@UWRFa sorts the list and l уменьшает отсортированный список на обратный промежуточный результат, добавить новое значение.

 

Kenn.aju


Рег
03 Nov, 2012

Тем
60

Постов
187

Баллов
507
  • 26, Oct 2024
  • #6

Пип, 19 байт, трещины Ответ DLosc

FiRSNalPBi& Fi # For each i in... R # Reversed... SN # Sorted by number... a # 'a' (input); PBi # Push i to the Back of... l # 'l'... & # ...and do something secret...

Попробуйте это онлайн!

Секретная 4-байтовая строка 'S': R:ll . The full code works with either one or (as required here) two copies of 'S'.

Публичная строка «P»:

FiRSNalPBi&R:llR:ll

Секретная строка «S»:

sort -n|sed '2~2p;G;1~2h;$!d'

Если мы используем строку 'S' дважды, мы просто переворачиваем ' (,|.)/ ' one more time at the end before outputting it.

 

TO)(a


Рег
22 Nov, 2006

Тем
102

Постов
183

Баллов
703
  • 26, Oct 2024
  • #7

Пип, 15 байт, трещины Второй ответ DLosc

/:~

Попробуйте это онлайн!

Секретная 7-байтовая строка 'S': (,|.)/@/:~ .

Либо это было очень подло, либо я не нашел намеревался трескаться.

Эту задачу можно решить с помощью 11-байтовой программы [Pip] — =>x[i+=2]?e:b.pop(),i=0,b=[...x]) - which numerically sorts ( x=>x.sort((a,b)=>a-b).map(e=>x[i+=2]?e:b.pop(),i=0,b=[...x]) ) вход [1,2,5,4,3] , reflects it ( [1,2,3,4,5] ; присоединяясь к самому себе), расплетает его ( [4,5,1,3,2] ; splitting into two lists of odd & even indexed elements), and then takes the first list ( (e,i)=>i<L?e:x[L*3-i],L=x.length/2|0) ).
Однако строка «P», похоже, меняет отсортированный ввод на месте, что полностью портит этот подход (который теперь помещает самый маленький элемент в центр вместо самого большого).
Но подождите... здесь нет точки с запятой, завершающей эту команду... мы можем добавить к ней...
Поэтому мы добавляем x=>x.sort((a,b)=>a-b).map((e,i)=>i<L?e:x[L*3-i],L=x.length/2|0) (logical AND) followed directly by our i.sort();return i[:m]+i[:m-1:-1] код: это, по-видимому, приводит к тому, что оба выражения оцениваются независимо, возвращая результат только второго (нашего кода).

Таким образом, реверс ввода на самом деле никогда не использовался и (я думаю) был просто приманкой...

 

Rss_adm


Рег
15 Nov, 2016

Тем
80

Постов
192

Баллов
602
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно