Блог пользователя awoo

Автор awoo, история, 7 лет назад, По-русски
Tutorial is loading...
Tutorial is loading...
Tutorial is loading...
Tutorial is loading...
Tutorial is loading...
Tutorial is loading...

Полный текст и комментарии »

Разбор задач Educational Codeforces Round 19
  • Проголосовать: нравится
  • +67
  • Проголосовать: не нравится

Автор awoo, история, 7 лет назад, По-русски

Привет, Codeforces!

15 апреля в 17:35 MSK состоится Educational Codeforces Round 19.

Образовательный раунд проводится в рамках инициативы университета Harbour.Space. Это уже второй раунд, проведенный при поддержке Harbour.Space. Подробности о сотрудничестве Harbour.Space и Codeforces можно прочитать в посте.

Учебное направление Data Science университета Harbour.Space несомненно интересно большой части аудитории Codeforces. Вот несколько слов об этом направлении от Сергея Николенко, преподавателя Harbour.Space и старшего научного сотрудника математического института имени В. А. Стеклова РАН (СПб).

Раунд будет нерейтинговый. Соревнование будет проводиться по немного расширенным правилам ACM ICPC. После окончания раунда будет период времени длительностью в один день, в течение которого вы можете попробовать взломать абсолютно любое решение (в том числе свое). Причем исходный код будет предоставлен не только для чтения, но и для копирования.

Вам будет предложено 6 задач на 2 часа. Мы постарались сбалансировать проблемсет таким образом, чтобы было интересно как новичкам, так и опытным участникам.

Раунд вместе со мной готовили Иван BledDest Андросов и Михаил MikeMirzayanov Мирзаянов.

Надеюсь, вам понравится, и желаю удачи!

UPD: Разбор

Поздравляем победителей:

Rank Competitor Problems Solved Penalty
1 Reyna 6 214
2 tqyaaaaaaaang 6 230
3 nuip 6 303
4 W4yneb0t 6 341
5 lexuanan 6 457

Поздравляем лучших взломщиков:

Rank Competitor Hack Count
1 step_by_step 40:-7
2 halyavin 44:-17
3 STommydx 20:-5
4 yp155136 18:-2
5 FlierKing 24:-15

Было сделано 234 успешных и 308 неудачных взломов.

И, наконец, поздравляем людей, отправивших первое полное решение по задаче:

Problem Competitor Penalty
A Lewin 0:01
B 300iq 0:04
C fanache99 0:09
D Reyna 0:21
E Vladik 0:08
F skywalkert 0:40

Полный текст и комментарии »

  • Проголосовать: нравится
  • +134
  • Проголосовать: не нравится

Автор awoo, история, 7 лет назад, По-русски

Отвечаю сразу: теперь реальность! Почти.

Для нетерпеливых сразу ссылка на юзерскрипт.

Всем привет!
Очевидно, вселенная несправедлива. К счастью, не все несправедливости неисправимы. И не так давно я нашел способ сделать этот мир чуточку лучше!

Представляю вашему вниманию плагин, который поможет многим людям выбраться из сложных жизненных ситуаций и спасти уверенность в себе!
Наверняка, каждый из активных участников местного сообщества сталкивался с ситуацией, когда смело потянувшись к зеленой стрелочке, столь же резко промахиваешься и лепишь жирный красный минус отличному комменту. И ведь даже не исправить это досадное недоразумение!

Так вот, посидев пару часов за изучением проблемы (а заодно и jquery), я склепал небольшой скрипт, который немного меняет концепцию подтверждения голосования за комментарий. Теперь, пока вы находитесь на странице, вы можете сколько угодно изменять свой голос за любой комментарий, на котором до перехода на эту страницу не стояло вашего голоса. Применение изменений же произойдет только в момент выхода со страницы (любым способом, даже закрытие браузера сохраняет голоса).

Не уверен, почему такое происходит, но иногда не все голоса сохраняются при закрытии страницы (особенно когда пытаешься поставить сразу много голосов), так что добавил дополнительно кнопку для сохранения. Она находится на панельке с количеством новых комментариев или на ее месте, если новых комментариев нет.

Продублирую ссылку на скрипт, если кто пропустил в самом начале. Это обыкновенный юзерскрипт, работает как в chrome-based браузерах (с помощью плагина tampermonkey), так и в firefox (greasemonkey), и в opera младших версий (violentmonkey).

О найденных багах и возможных предложениях пишите в лс или в комментарии.

Всех с наступающим!

Полный текст и комментарии »

  • Проголосовать: нравится
  • +158
  • Проголосовать: не нравится

Автор awoo, история, 9 лет назад, По-русски

Вступление

Всем привет! Недавно я решил "вспомнить молодость" и поиграть в Gravity Defied на своем телефоне. Нетрудно было найти порт этой некогда культовой игры на более современные платформы. Изначально написанная на J2ME, она быстро завоевала популярность у школьников прошлого десятилетия. Простейший геймплей (мотоциклист, преодолевающий различные трассы с высокими горами и глубокими ямами), замечательная физика (возможность вращения в воздухе) и простота модифицирования — вот секрет успеха Gravity Defied. И я мало того, что просто просиживал часы за прохождением новых дополнений, так еще и зарабатывал на помощи менее мастеровитым игрокам! Это уже позже пришло время миссии с вертолетом в GTA Vice City, трудностей Far Cry и HOMM 3...

Немного предыстории

И вот она снова на моем аппарате! Конечно, не оригинал — лишь ремейк для Android, но великолепная атмосфера передана в полном объеме. Игра настолько увлекла меня, что я представлял гордого мотоциклиста каждый раз, когда видел какую-нибудь ломаную линию, похожую на трассу из GD. После очередного контеста на Codeforces я сидел, ожидая пересчета своего рейтинга, смотрел на график в своем профиле... Да, ну и как вы догадались, у меня родилась идея использовать этот график в качестве уровня. Захотелось пережить вновь все успехи и неудачи, накопленные за полтора года пребывания в среде спортивного программирования...

Разработка

Одним прекрасным уже летним вечером я сел писать код и осознал, что не смыслю абсолютно ничего ни в моддинге в целом, ни в особенностях структуры Gravity Defied. Полез, естественно, бороздить просторы интернета в поисках необходимой информации. Узнал для начала, что в разных версиях GD для Android (есть официальная от Codebrew и неофициальная от разработчиков ВКонтакте, которая лично мне больше нравится) используется разный формат для файлов уровней. И если .gdlevel для официальной дался легко (Используется крайне подходящий для такого формат JSON), то вот с .mrg из неофициальной (также он использовался в той самой J2ME-игре) пришлось помучиться. Дело в том, что форумов, с которых можно что-то вытащить, очень немного (я нашел всего один и еще одну полезную вики). И когда наконец перевел всю информацию, написанную там, с лунного на понятный мне язык, ушел реализовывать. Небольшой скрипт на Python 3, получая через Codeforces API список проведенных раундов для указанных пользователей, создает список точек трека по изменению рейтинга и времени между соседними раундами. Использует только встроенные библиотеки (os, sys, time, urllib, json). Работает из консоли, притом может считывать ники, как из файла, так и из командной строки. Советы по установке и сам скрипт можете найти здесь.

Немного скриншотов результатов работы скрипта:

О найденных багах в скрипте и неточностях в данном посте пишите, пожалуйста, в личные сообщения.

Удачи и приятной игры!

Полный текст и комментарии »

  • Проголосовать: нравится
  • +245
  • Проголосовать: не нравится