Посібник з написання умов | Статті

  1. Назва задачі

    • Дотримуйтеся правил вживання великих букв для назв задачі англійською мовою. Приклад: «The Best of the Problems» замість «The best of the problems». Це не застосовується до українських умов.

    • Уникайте використання спеціальних символів у назві задачі (&\(^\wedge\)@* або схожих).

    • Назва повинна бути не довгою (до семи слів).

    • Назва задачі повинна бути унікальною в англійській та українській версіях (Не повинно бути задач в архіві з такою назвою).

  2. Обмеження

    • Стандартне обмеження на час: 2 с.

    • Стандартне обмеження на пам’ять: 256МіБ.

    • Обмеження на час до семи секунд.

    • Обмеження на пам’ять до 1024Міб, і хоча б 128Міб. Обмеження повинне бути степенем двійки.

    • Якщо обмеження на час або пам’ять є меншими за стандартні, переконайтеся, що задача є розв’язною на Java та Python.

  3. Абзаци

    • Відділяйте абзаци пустим рядком в LaTeX; Не використовуйте абзацний відступ або команду \par.

    • Умова не повинна бути одним великим абзацом. Розбивайте умову на декілька логічних частин для збільшення читабельності.

  4. Змінні

    • За замовчуванням, всі змінні в секціях умова та вхідні дані повинні бути в $, наприклад: $n$.

    • Змінні не повинні бути жирними.

    • Рекомендуємо позначати змінні однією маленькою латинською літерою.

    • По можливості використовуйте стандартні назви змінних (наприклад \(n\) для кількості вершин, \(m\) для кількості ребер, \(k\) або \(q\) для кількості запитів).

    • Уникайте використовування змінних індексування (наприклад \(i\) або \(j\)) як назви змінних.

  5. Літерали

    • Числа не повинні бути в $. Приклад: Вершини пронумеровані від 1 до $n$, включно. Виняток: якщо згідно з умовою потрібно вивести -1 коли відповіді не існує, сприймайте -1 як рядок (дивитися далі).

    • Рядки повинні бути в \texttt{}. Наприклад, використовуйте \texttt{YES} при описі рядка YES.

    • Не використовуйте лапки для рядків.

    • Числа (або змінні) повинні мати правильне закінчення, наприклад: 2-гий, $i$-тий, і т. д.. Те саме і для англійських умов.

    • Масиви не повинні бути в $, наприклад, [4, 7].

  6. Формули

    • Всі математичні формули повинні бути в $, наприклад: $n < m$.

    • Не використовуйте * для множення. Натомість використовуйте \cdot (наприклад $n \cdot m$).

    • Використовуйте \times для опису розмірності матриць. Наприклад матриця розміру $n \times m$.

    • Не використовуйте знак ділення /. Натомість використовуйте дріб: $ \frac{a}{b}$.

    • Використовуйте відповідні команди LaTeX як знаки нерівності: \le для ’менше рівне’, \ge для ’більше рівне’.

    • Великі формули повинні бути в окремому рядку, по центру і в $$ (подвійний знак долара), наприклад: $$n < m$$.

    • Використовуйте ^ і _ для верхнього або нижнього індексування, наприклад: $10^9$, $2^{nk}$, $a_i$.

    • Завжди використовуйте відповідні команди LaTeX для позначення математичних символів. Повний список всіх математичних команд можна знайти тут.

    • Масиви (окрім літералів) потрібно писати так: $[a_1, a_2, \ldots, a_n]$.

  7. Вхідні дані

    • Завжди зазначайте чи тип вхідних даних (ціле число, дійсне число, рядок чи символ).

    • Якщо у вхідних даних є дійсні числа, потрібно зрозуміло описати формат в якому вони задаються.

    • Використовуйте таке формулювання для вхідних даних українською мовою: У першому рядку задано одне ціле число $n$ — ...., У наступних $n$ рядках задано пари цілих чисел $u_i$ $v_i$, які описують ребра графу....

    • Використовуйте таке формулювання для вхідних даних англійською мовою: The first line of the input contains a pair of integers ..., The following $m$ lines describe..., etc. Використовуйте правильні англійські артиклі.

    • Не спрощуйте занадто опис вхідних даних. Уникайте Одне число $n$. Натомість пишіть: В першому рядку задано одне ціле число $n$ — кількість пляшок.

    • Кожна змінна повинна бути коротко описаною.

  8. Вихідні дані

    • Якщо в задачі може не бути відповіді, це повинно бути чітко зазначено в секції вихідні дані.

    • Якщо в задачі є декілька правильних відповідей, це повинно бути зазначено в секції вихідні дані.

    • Якщо в задачі можна гарантувати існування відповіді для вхідних даних, це повинно бути зазначено в секції вихідні дані.

    • Якщо відповідь містить дійсне число, у вихідних даних треба зазначити дозволену похибку (абсолютну і/або відносну).

    • Якщо відповідь треба вивести за модулем простого числа, це повинно бути зазначено у вихідних даних. Необхідно явно вказати, якщо модуль є простим числом.

    • Використовуйте таку конструкцію, при описі вихідних даних українською В єдиному рядку виведіть одне число, що позначає кількість ... і т. д.

    • Використовуйте таку конструкцію, при описі вихідних даних англійською: Print a single integer denoting the minimum number ... etc. Використовуйте правильні англійські артиклі.

    • Не пишіть вихідні дані занадто спрощеними, уникайте Відповідь на задачу. Натомість, пишіть: В єдиному рядку виведіть одне ціле число $n$ — кількість пляшок.

  9. Обмеження

    • Всі обмеження повинні бути в спеціальній секції умови. Можна повторно зазначати певні обмеження в основній частині для звертання уваги.

    • Об’єднуйте обмеження коли це доцільно: $1 \le n, m \le 1000$.

    • Кожне обмеження має бути в окремому рядку умови (відділене порожнім рядком в LaTeX).

    • Довжина рядка повинна бути позначена, як |s|.

    • Використовуйте правильні знаки нерівності (описані в секції формули).

    • Робіть числа якомога більш зрозумілими. Наприклад, пишіть $1 \le n \le 2 \cdot 10^9$ замість $1 \le n \le 2000000000$.

    • Використовуйте круглі або щасливі числа в обмеженнях.

    • В кінці кожного рядка ставте кому, в кінці останнього — крапку. Будь-яке твердження (окрім першого) має починатися з малої букви.

  10. Списки

    • Використовуйте відповідні команди LaTeX для списків:

      Невпорядкований список:
      \begin{itemize}
       \item один елемент списку
       \item інший елемент списку
      \end{itemize}
      впорядкований список:
      \begin{enumerate}
       \item один елемент списку
       \item інший елемент списку
      \end{enumerate}
  11. Зображення

    • Всі зображення необхідно завантажити в секцію Ресурси, у задачі.

    • Посилатися на картинки можна за назвою ресурсу, без розширення файлу.

    • Зображення необхідно розміщувати по центру, з наступним описом:

      \begin{center}
       \includegraphics[width=0.5\textwidth]{resource-name}
      \end{center}
  12. Приклади

    • Умова повинна містити хоча б один приклад.

    • Уникайте використання занадто простих прикладів (ака приклади Бойка).

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

  13. Примітки

    • У примітках необхідно пояснити приклад, якщо це доцільно.

    • У примітки можна додавати додаткові означення, якщо це необхідно, проте необхідно посилатися на них в основній частині умови.

  14. Різне

    • Частини умови, які необхідно виділити (неочевидні обмеження або умови, виправлені частини умови, і т. д.) повинні бути жирними (написаними в \textbf{}).

    • Використовуйте --- і українських і -- в англійських умовах. Ніколи не використовуйте - як тире.

    • Використовуйте перевірники орфографії при написанні українських чи англійських умов.