Що робити, якщо у Вас виникло бажання стати учасником олімпіад зі спортивного програмування, але ви сумніваєтеся у своїх силах і можливостях?
Дізнайся з нашої статті в чому сила програмістів-олімпіадників і де можна відточувати навички алгоритмічної майстерності.

      На запитання студентів  ХНУРЕ відповідає переможець всеукраїнських змагань LUCKY NUMBERS CONTEST 2023, аспірант кафедри ШІ факультету КН . 

 

Чи є якесь обмеження у віці для занять спортивним програмуванням?

— У деяких олімпіадах (включно з однією з найпрестижніших — чемпіонатом світу ICPC) є обмеження за віком — потрібно бути не старше 23 років. Але існує і безліч змагань без вікових обмежень, наприклад, чемпіонати великих компаній, такі як Google Code Jam, Facebook Hacker Cup, або ж регулярні раунди на онлайн-платформах Code forces і AtCoder. Плюс ніхто ж не забороняє займатися спортивним програмуванням суто для себе, щоб дізнаватися щось нове, розвивати своє алгоритмічне мислення. Тож починати в будь-якому разі ніколи не пізно, головне мати бажання.

 

 

— У чому переваги учасника змагань з програмування від звичайного програміста?

— Основна відмінність у тому, що олімпіадник глибше розуміє, як влаштований той чи інший алгоритм зсередини, а отже, може оцінити ефективність різних підходів і вибрати оптимальний. Також він не боїться і вміє вигадувати нестандартні розв'язки задач, тоді як звичайний програміст здебільшого віддасть перевагу готовому, перевіреному підходу, який далеко не завжди може виявитися найкращим.

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

 

 

Чи можете порадити якісь сервіси, які допоможуть у вдосконаленні навичок алгоритмічної майстерності?

— На самому початку я б порадив зареєструватися на платформах https://codeforces.com/ і https://atcoder.jp/, де регулярно проводяться особисті змагання всіх рівнів складності (для новачків відмінно підійдуть div.3 раунди на Code forces і beginner contest-и на AtCoder). Крім цього, має сенс вирішувати який-небудь великий архів завдань у порядку зростання складності. Для мене це був все той же Code forces.

      Також у міру вивчення нових алгоритмів має сенс створювати свою невелику бібліотеку, яку можна використовувати, якщо в завданні трапляється якась стандартна техніка. Для тестування такої бібліотеки чудово підходить сайт https://judge.yosupo.jp/, де зібрано більшість стандартних завдань, плюс є можливість дивитися код найефективніших рішень інших учасників.

     З корисних сервісів я б ще виділив https://clist.by/ - сайт, на якому можна дивитися календар найпопулярніших змагань.

Що порадили всім студентам університету?

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

 

Дякуємо Матвію Асландукову за змістовне інтерв'ю.

Бесіду вів Олег Топорков.

 

Популярні статті

Читати далі