Задачи для курса "Алгоритмы и структуры данных" 2022 года курса в Образовательном центре VK в Политехе
Форкните проект, склонируйте и добавьте upstream
:
$ git clone [email protected]:<username>/2022-ads.git
Cloning into '2022-ads'...
...
$ git remote add upstream [email protected]:polis-vk/2022-ads.git
$ git fetch upstream
From github.com:polis-vk/2022-ads
* [new branch] main -> upstream/main
В общем случае часть задач будет с infromatics-msk и e-olymp, и проверяться будет средствами этих систем. Также возможны и задачи, тесты на которые будут оформлены в нашем репозитории. Либо могут быть ДЗ, где тесты к своим решениям будет нужно написать самостоятельно.
Первым делом регистрируемся на informatics-msk и e-olymp, на informatics-msk записываемся на курс
Для каждого нового домашнего задания заводим новую ветку в своем репозитории.
Например, домашнему заданию после первой лекции будет соответствовать ветка part1
.
Создаем ее в локальном репозитории
$ git checkout -b part1
- Исходники решений добавляются в java-пакет
company.vk.polis.ads.<partX>.<username>
, гдеusername
- логин на Github в случае e-olimp или тестов в репозитории. - В случае с informatics решения добавляются в корень проекта, так как тестирующая система требует класс без указания пакета.
После того, как решения будут доведены до рабочего состояния (все тесты будут проходить),
можно коммитить, пушить и создавать pull request в polis-vk/2022-ads
.
В самом PR либо в его описании, либо в комментариях к каждому классу-решению
Решение каждой задачи - отдельный Java-класс. Можно воспользоваться классом company.vk.polis.ads.SolveTemplate
, в котором остается реализовать лишь метод solve
.
- informatics-msk: добавлять ничего не нужно, статус решения отображается в общих результатах.
- E-olymp: В самом PR либо в его описании, либо в комментариях к каждому классу-решению нужно добавить ссылку на submission в e-olymp, где видно, что все решение прошло все тесты. Эти ссылки имеют вид "https://www.e-olymp.com/ru/submissions/5707028".
Все обсуждения решения происходят в рамках комментариев к PR (в противном случае мы зафлудим общий чатик и запутаемся окончательно :))
Прогон тестов будет осуществляться системами continuous integration, например, Github Actions. Тесты в этих системах будут исполняться при созданни PR и при добавлении новых коммитов. В итоге у PR должна появиться зеленая галочка, говорящая об успешном прохождении тестов.
Задачи с informatics-msk: https://informatics.msk.ru/mod/statements/view.php?id=75096#1
В задачах, где требуется реализовать структуру данных (стек, дек или очередь), использовать готовые реализации из Java нельзя.
В "олимпиадных" задачах можно использовать стандартные реализации java.util.Queue
какие найдете, java.util.Stack
использовать нельзя.