Умова задачі

Умова задачі — це текстовий документ, який чітко пояснює завдання, описує обмеження та формати вхідних і вихідних даних, а також надає інші важливі деталі, необхідні для розв’язання задачі.

На Eolymp задачі можуть мати кілька умов різними мовами, щоб учасники могли обрати мову, якою їм зручніше працювати.

Як створити умову

Щоб створити або відредагувати умову задачі, виконайте такі кроки:

  • Відкрийте консоль і виберіть простір, де знаходиться задача.

  • Перейдіть у розділ Задачі в лівому меню.

  • Оберіть задачу, яку хочете редагувати, або створіть нову.

  • Перейдіть у розділ Умови через меню задачі.

Ви можете додати нову умову, натиснувши "Додати умову" у верхній частині інтерфейсу. Для редагування наявної умови виберіть її зі списку.

Рис. 1. Форма створення умови задачі

У редакторі умов можна вказати ключові елементи: заголовок, текст умови, джерело та інформацію про автора. Якщо задача використовувалася на офіційному змаганні, можна завантажити PDF-файл з оригінальною умовою, і вона буде доступна для завантаження учасниками.

Як написати умову задачі

Добре написана умова повинна містити кілька основних розділів:

  • Вступ: Коротке пояснення мети задачі. Цей розділ повинен надати контекст, але не містити підказок щодо розв'язку.

  • Вхідні дані: Детальний опис формату вхідних даних. Обов'язково зазначте всі обмеження для вхідних значень (наприклад, ). Це допоможе учасникам уникнути непорозумінь і підвищить ефективність їхніх рішень.

  • Вихідні дані: Чітко опишіть формат очікуваного виводу. Якщо правильних відповідей може бути кілька, вкажіть, яку саме потрібно подати (наприклад, найменше значення або будь-яку правильну відповідь).

  • Протокол взаємодії (для інтерактивних задач): В інтерактивних задачах вхідні та вихідні дані обробляються динамічно. Опишіть, як програма взаємодіятиме з інтерактором, деталізуючи "діалог" між рішенням і системою. Наприклад, у грі на вгадування числа інтерактор може надавати зворотний зв’язок типу "замало" або "забагато".

  • Приклади: Цей розділ містить приклади вхідних і вихідних даних, щоб допомогти учасникам зрозуміти, як виглядають дані. Приклади генеруються системою автоматично з тестів, позначених як приклади.

У деяких випадках можна додати додаткові розділи:

  • Оцінювання: Якщо задача включає часткове оцінювання (наприклад, за різні підзадачі можуть нараховуватися різні бали), поясніть, як нараховуються бали за кожен набір тестів.

  • Примітки: Для складніших задач корисно пояснити, як було отримано відповідь у прикладах, що допоможе учасникам краще зрозуміти логіку задачі.

Форматування

Текст умови можна писати у форматах LaTeX або Markdown. Ці формати підтримують форматування та математичні вирази, що дозволяє чітко оформляти складні формули та дані.

Важливо також використовувати спеціальні маркери для визначення розділів умови. Ці маркери допомагають системі структурувати та правильно відображати зміст. Кожен маркер починається зі зворотної косої риски () і розташовується на окремому рядку з порожніми рядками до і після.

Маркер

Опис

\InputFile

Початок розділу з описом вхідних даних.

\Interaction

Початок розділу з описом протоколу взаємодії (для інтерактивних задач).

\OutputFile

Початок розділу з описом вихідних даних.

\Examples

Початок розділу з прикладами.

\Note

Початок розділу з поясненням до прикладів.

\Scoring

Початок розділу з описом алгоритму оцінювання.

Ці маркери працюють як у Markdown, так і в LaTeX. Приклад умови з маркерами:

Все, що знаходиться перед першим маркером, є вступом.

\InputFile

Опис вхідних даних.

\OutputFile

Опис вихідних даних.

Поради

Хороша умова задачі має бути чіткою та повною. Ось кілька порад, щоб ваша умова була структурованою та зрозумілою:

  • Будьте точними: Уникайте двозначностей, чітко визначаючи терміни та обмеження. Наприклад, якщо задача стосується обробки слів, поясніть, що вважається словом (як обробляються пунктуація або дефіси).

  • Повідомляйте всі обмеження: Учасники повинні знати всі обмеження наперед. Якщо приховати важливі деталі, це може призвести до плутанини. Завдання має зосереджуватися на розв'язанні проблеми, а не на здогадках про те, що від них вимагається.

  • Використовуйте чіткі приклади: Надайте кілька прикладів вхідних і вихідних даних із коротким поясненням того, як були отримані відповіді. Це допоможе учасникам перевірити своє розуміння задачі.

  • Дотримуйтеся логічної структури: Дотримуйтеся чіткого порядку: вступ, вхідні дані, вихідні дані, додаткові розділи (за потреби).

Приклади умов

Дотримуючись цих рекомендацій, ви зможете створити цікаві, чіткі та викличні умови задач, надаючи учасникам всю необхідну інформацію для успішного розв'язання.