Skip to content

Latest commit

 

History

History
100 lines (69 loc) · 8.3 KB

Contributing.md

File metadata and controls

100 lines (69 loc) · 8.3 KB

Contributing

Ако желаете да допълните това хранилище с ваши решения на задачи , можете да го направите като:

Добавяне на задачи от изпити / домашни / контролни

Стъпка 0: Сложете звезда на хранилището

Стъпка 1: Клонирайте хранилището

Стъпка 2: Добавете ваши решения на задачи като:

Ако добавяте решения на вече добавени задачи:

  • Създайте .cpp файл с вашето име в директорията на съответната задача, съдържащ решението ви

Ако добавяте решения на нови задачи, чийто CONTEST НЕ Е ДОБАВЕН:

  • Създайте папка за съотвения HackerRank contest в директорията отговаряща на заданието (Exam / Homework / Practicum). Следвайте йерархичната структура, утвърдена в хранилището ( <папка на тип задание> / <поредно задание> / <година> )

  • Създайте Readme.md файл, който съдържа единствено линк към състезанието в HackerRank и има една от следните структури:

    https://www.hackerrank.com/<идентификатор на състезанието>
    https://www.hackerrank.com/contests/<идентификатор на състезанието>/challenges/
    
  • Изпълнете скрипта StatementWriter.py. ВАЖНО: ПРОЧЕТЕТЕ ИНСТРУКЦИИТЕ.
    Той ще генерира условията на задачите и файловата структура на състезанието. Моля, прегледайте и редактирайте неточности по условията, предизвикани от изпълнението на скрипта.

  • Добавете .cpp файлове с вашето име в директориите на съответните задача, съдържащи решенията ви

Ако добавяте решения на нови задачи, чийто CONTEST ВЕЧЕ Е ДОБАВЕН:

  • Създайте папка за съотвената задача в директорията отговаряща на конкретното задание (Exam / Homework / Practicum).

  • Създайте Readme.md файл, който съдържа единствено линк към задачата в HackerRank и има следната структура:

    https://www.hackerrank.com/contests/<идентификатор на състезание>/challenges/<идентификатор на задача>
    
  • Изпълнете скрипта StatementWriter.py. ВАЖНО: ПРОЧЕТЕТЕ ИНСТРУКЦИИТЕ.
    Той ще генерира условието на задачата. Моля, прегледайте и редактирайте неточности, предизвикани от изпълнението на скрипта.

    • Добавете .cpp файл с вашето име в директорията на съответната задача, съдържащ решението ви

Стъпка 3: Направете Pull Request


Указания за работа със скрипта StatementWriter.py за извличане на услвия от HackerRank

Този скрипт има за цел да извлиза условията от състезанията в Hackerrank и да помага в организацията на хранилището

1. Необходим е Python >= 3.9

2. Скрипта работи с библитоеката Selenium:

pip install selenium

3. Необходим е браузър, който да се използва за извличането на условията:

  • Firefox (ПРЕПОРЪЧИТЕЛНО)
  • Chrome - не се препоръчва, тъй като не може да работи в headless режим заради специфики на HackerRank (ще се отвори прозорец при изпълнениено на скрипта, който не трябва да се пипа)

4. Пуснете скрипта

python .\StatementWriter.py
  • Избирате браузър, който да се използва при изпълнението (ако по някаква причина единият не работи, да се пробва другият)
  • Въвеждате данни за Hackerrank акаунт(не се съхраняват никъде), чрез който да се извлекат условията
  • Пита се потребителя за всяко открито readme дали да извлече съдържанието или не
    • Ако се отнася за contest, се пита след това дали да създаде и папките и условията за задачите от състезанието
  • Създават се readme файловете
  • Скрипта приключва

ВАЖНО: Винаги преглеждайте markdown файловете!

  • Скрипта само помага, но не върши цялата работа по извличането на условието, тъй като HackerRank не съхранява в чист вид MathJax стиловете на TeX, а GitHub не позволява показване на SVG в чист вид.
  • Необходимо е на ръка да се напишата на всяко условие Constraints и да се попълнят всички други места, които се визуализират като $MISSING$. За тази цел се използва специален TeX синтаксис. Повече тук. Повече за LaTeX символите тук. Пример: Следния код се визуализира до $1 \le N \le 5 \cdot 10^5$ и $0 \lt a_{i} \lt 2^{24}$
$1 \le N \le 5 \cdot 10^5$

$0 \lt a_{i} \lt 2^{24}$
  • Необходимо е да се познава и синтаксиса на Markdown. Например: за заглавия ## Heading, за връзки [show text](<link here>), за нов ред <празен ред>

  • Скрипта има много забележки(които може да се отстранят в следваща версия), които трябва да се имат предвид:

    • Когато в даден пример (Sample Input / Output) има символи като -*_, а не само букви и цифри, трябва целият пример да се сложи на ръка
    • Почернен тескт в обяснение на пример (Explanation) се визуализира като #### <text> вместо като **<text>**, което трябва да се оправи на ръка
    • Не хваща рядко срещани стилистични особености, като например списъци

    NB: Възможно е наличие и на други особености, които да представляват bug за скрипта!

    Всякакъв принос по развитие на хранилището чрез качване на решения, поправяне на грешки и усъвършенстване на скриптове е високо оценен!