Натхненний цим коментарем ...
Дякую користувачам Step Step , Wiz-Wizard та Dennis за те, що вони допомогли мені затвердити специфікацію цього завдання перед тим, як опублікувати його!
Це нитка Розбійника! Щодо теми копів, перейдіть сюди
У цьому завданні вам поставлено завдання виконати деякий код, який робить його таким чином, щоб ваша мова більше не відповідала нашим критеріям мови програмування. У цьому виклику це означає зробити так, щоб мова більше не могла ...
Візьміть числовий вхід і вихід
Додайте два числа разом
Перевірте, чи певне число є простим чи ні.
Це виклик для поліцейських і грабіжників , де є два різні завдання з двома різними цілями: Копи намагаються написати якийсь код, який робить мову переважно непридатною, а грабіжники намагатимуться знайти прихований спосіб вирішення, який дозволяє поліцейським відновити свою мову.
Копи напишуть два фрагменти коду:
Такий, який робить їх мову в основному непридатним, наприклад, видаляючи вбудовані функції для введення / виводу та чисельних операцій. Цей код НЕ дозволив врізатися або вийти. Потрібно додати код до кінця цього фрагмента, і цей код буде оцінено . І
Фрагмент коду, який приймає два числа як вхідні дані, додає їх разом і виводить їх суму. Цей фрагмент повинен правильно функціонувати навіть після запуску першого фрагмента. Коли два фрагменти об'єднані разом, вони повинні сформувати повну програму, яка додає два числа, або визначити функцію, яка додає два числа. Цей фрагмент, ймовірно, покладається на незрозумілу поведінку, і його важко знайти.
Копи також обирають будь-який стандартний метод введення та виведення . Однак вони повинні точно розкрити, який формат (вхід і вихід) вони використовують. Щоб ви зламали їх відповідь, ви повинні дотримуватися того самого формату введення / виводу, інакше ваша тріщина не враховується.
Відповідь поліцейських завжди виявиться
Перший фрагмент (явно не другий).
Мова (включаючи незначну версію, оскільки більшість публікацій, ймовірно, покладаються на чужі кращі регістри)
Формат IO, включаючи, чи це функція, або повна програма. Грабіжники повинні використовувати той самий формат, щоб бути дійсною тріщиною.
Будь-які дивні крайові випадки, необхідні для їх відповіді на роботу. Наприклад, працює лише під Linux або вимагає підключення до Інтернету .
Як грабіжник, ви повинні подивитися на один із представників поліції та спробувати його зламати. Ви можете зламати його, написавши будь-який дійсний фрагмент, який може працювати як фрагмент 2 (додавання двох чисел разом після того, як мова стає в основному непридатною). Це не повинен бути тим самим фрагментом, який написав поліцейський спочатку. Як тільки у вас відповідь зламається, опублікуйте свій код як відповідь на цій темі та опублікуйте посилання на свою відповідь як коментар до відповіді поліцейського. Потім ця публікація буде відредагована, щоб вказати, що вона зламана.
Ось приклад. На перший фрагмент ви можете побачити наступну програму python 3 як відповідь поліцейських:
Пітон 3
print=None
Приймає вхід з STDIN і виводить на STDOUT
Дійсний другий фрагмент може бути
import sys
a,b=int(input()),int(input())
sys.stdout.write(a+b)
Це дійсно, тому що він буде приймати два числа як вхідні дані та виводити їх суму, навіть якщо ви об'єднаєте два фрагменти разом, наприклад
print=None
import sys
a,b=int(input()),int(input())
sys.stdout.write(a+b)
Це дійсна тріщина їх відповіді.
Якщо відповідь поліцейського залишається нерозкритим протягом цілого тижня, вони можуть редагувати у своєму другому фрагменті та вказати, що їх відповідь зараз безпечна . Щойно він буде відредагований як безпечний, ви більше не зможете його зламати. Якщо вони не редагують це як безпечне, ви можете продовжувати намагатися зламати його, поки вони не зроблять це.
Переможець нитки розбійника - це той користувач, який отримав найбільшу кількість відповідей, причому перемикач краватки - час, коли вони досягли N тріщин. (тож якщо у двох різних користувачів є 5 тріщин, наприклад, користувач, який опублікував свій 5-й тріск першим, є переможцем). Після закінчення достатнього часу я прийму відповідь переможця з найбільшою кількістю голосів.
Веселіться!
Роз'яснення правила
Перший фрагмент повинен працювати правильно, не беручи жодного вводу . Він може виводити все, що завгодно, і цей вихід буде проігноровано. Поки після виконання фрагмента другий фрагмент працює правильно.
Другий фрагмент повинен бути фактично виконаний, щоб відповідь була дійсною. Це означає, як відповідь
import sys sys.exit()
недійсний, оскільки він не порушує мову. Він просто відходить.
Після надійності ваш рахунок - це кількість байтів обох фрагментів .
Це повертається до Будь-ласка, розкрийте будь-які дивні випадкові випадки, необхідні для вашої відповіді на роботу ... Ваше подання повинно містити достатньо інформації, перш ніж буде виявлено, щоб було відтворено після розкриття. Це означає, що якщо ваша відповідь стає безпечною, а потім ви редагуєте: Ось моя відповідь. О так, BTW, це працює лише в тому випадку, якщо ви запускаєте його на Solaris, жартує над вами! Ваша відповідь недійсна і буде видалена і не вважатиметься придатною для виграшу.
Другий фрагмент дозволений до збоїв після виведення суми. Поки результат все ще правильний (наприклад, якщо ви вирішили вивести на STDERR, а потім отримаєте купу інформації про збій, це недійсно)
Таблиця лідерів
Ось список кожного користувача, що має хоча б одну тріщину, упорядкований за рахунком, а потім ім'ям (за алфавітом). Якщо ви подаєте тріщину, будь ласка, оновіть відповідний бал відповідно.
#User #Score
Ilmari Karonen 8
Dennis 5
Olivier Grégoire 4
Sisyphus 3
Veedrac 3
Arnold Palmer 2
Bruce Forte 2
DJMcMayhem 2
Dom Hastings 2
ppperry 2
1bluston 1
2012rcampion 1
Ben 1
BlackCap 1
Christian Sievers 1
Cody Gray 1
HyperNeutrino 1
Joshua 1
Kaz 1
Mark 1
Mayube 1
Xnor 1
zbw 1
SecurityManager
те, що було в обсязі ... Ти також можеш читати зSystem.in
цього моменту, хоча це ще не закрито.