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

Автор freopen, 11 лет назад, По-русски

Всем привет. Лето потихоньку заканчивается и я решил, что сейчас самое время транслировать очередную Зимнюю олимпиаду. Немного поздновато, но сойдет.

Время и место олимпиады

Пробный тур: 10 августа в 19:00. Продолжительность: 24 часа.

Основной тур: 11 августа в 19:00. Продолжительность: 3 часа.

После основного тура будет запущен виртуальный турнир той же длительности.

Оба тура проводятся тут: http://freopen.org/.

Если будут проблемы с DNS, можно напрямую: http://37.139.21.227/. Напишите мне в личку, если будут проблемы с DNS (freopen).

Правила олимпиады

  • Языки олимпиады: С/С++ (gcc), Java7 (openjdk), Python (2.7.3, 3.2.3), Pascal (Free Pascal 2.4.4-3.1)
  • На олимпиаде будет предложено несколько задач.
  • По каждой можно получить максимум 100 баллов.
  • В каждой задаче своя система оценки. Система оценки каждой задачи указана в условии.
  • Лишние отправки не могут негативно влиять на итоговый балл по задаче.
  • Действия других участников могут влиять на балл по задаче. Таким образом, количество баллов участника может меняться в течение контеста даже если участник не предпринимает действий.
  • Проверка решения происходит сразу после отправки.

Сложность олимпиады

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

На этой олимпиаде даже только начавшие программировать школьники, которые знают лишь основы своего языка программирования, смогут набрать какие-то баллы в каждой задаче. В частности, в одной задаче можно набрать баллы не умея программировать ВООБЩЕ (правда, достаточно маленькие). Но при этом лично мне неизвестно полное решение этой задачи.

Итого. Олимпиада рекомендуется для новичков и участников второго дивизиона Codeforces. Более сильные участники найдут, над чем подумать, получить близкие к 100 баллы по каждой задаче довольно непросто даже для фиолетовых и оранжевых участников (как мне кажется).

Краткая инструкция по регистрации

После того, как вы зарегистрируетесь и залогинитесь появится вот такая форма:

В ней надо нажать на кнопку [Edit] и в полученное поле ввести свое имя:

Затем надо нажать save и потом [Confirm registration]

Наконец, надо нажать Participate.

В основной тур можно попасть по тому же пользователю и паролю. В случае трудностей пишите мне: freopen.

Напоследок

Я не знаю, насколько система стабильна. Все может упасть в любой момент, так что я заранее извиняюсь, если все сломается. Пожалуйста, не ломайте мою систему специально.

Комментарии:

Про задачу A

Решения и мысли по задачам

Альтернативная табличка

Архив: Третья зимняя олимпиада (2012)

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

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

Автор freopen, 13 лет назад, По-русски

... это не g++, это minGW.

MinGW (англ. Minimalist GNU for Windows), ранее mingw32, — нативный программный порт GNU Compiler Collection (GCC) под Microsoft Windows, вместе с набором свободно распространяемых библиотек импорта и заголовочных файлов для Windows API. (Википедия).

Я плохо понимаю, как можно портировать на другую платформу приложение с открытым кодом, при этом наделать кучу ошибок, которые, казалось бы, случайно не сделаешь, при этом стать популярным. Но вот как-то так и вышло.

Вот, например, что вас может ждать, если вы будете использовать компилятор, который на этом сайте гордо зовется g++. Попробуем запустить вот такой код:

#include <iostream>
#include <cmath>
#include <algorithm>
#include <vector>
#include <iomanip>
using namespace std;

bool fail1=0, fail2=0;

bool lsw0(int a, int b) {
  // В исходном массиве нет нулей, 
  // компаратор не может запуститься от нулевого аргумента
  if (a==0 || b==0) if (!fail1) {fail1 = 1; cout << "Fail #1" << endl;}
  // Арктангенс от положительного числа и нуля согласно man pages
  // равен pi/2 независимо от первого аргумента
  if (atan2(a,0) < atan2(b,0)) if (!fail2) {fail2 = 1; cout << "Fail #2" << endl;}
  // Это отношение транзитивно, если арктангенс зависит только от входных данных
  return atan2(max(a,1),0) < atan2(max(b,1),0);
}

int main () {
  #ifdef __MINGW32__
  cout << "I'm running on MinGW 32" << endl;
  #endif
  vector<int> perm;
  for (int j=1;j<250;j++) {
    perm.push_back(j);
  }
  sort(perm.begin(),perm.end(),lsw0);
}

На нормальных компиляторах этот код отработает без ошибок и ничего не выведет на экран. Но не на MinGW! Фейл первый: если запустить сортировку сортировать массив (1,2,...,249), может ли компаратор запуститься от нулевых аргументов? Как правило, функцию сортировки совершенно не волнует отношение порядка для элементов вне массива. Но MinGW оказался очень любопытным компилятором и таки заглянул туда. Фейл второй: как вы думаете, что больше: угол от OX до вектора (0;1) или угол от OX до вектора (0,2). Вот MinGW искренне думает, что они вполне себе могут отличаться. Ну и наконец, пишем более-менее стандартный компаратор, который отработает верно независимо от реализации atan2, лишь бы сам atan2 не рухнул. Но и здесь нас ждет провал, сортировка падает в RE.

Вывод: если вы не желаете экстремального поиска багов компилятора во время контеста, используйте компилятор Visual C++. Также, наверное, стоит сменить название компилятора в системе с g++ на MinGW, чтобы новички не удивлялись, почему в системе код падает, а у них на локальном компьютере все работает.

UPD. SkyHawk подсказывает, что g++ может вызывать fail #1, если компаратор не является strict weak ordering. Однако, MinGW умеет так делать даже при верном компараторе.

UPD2. Делаю вывод, что все эти фейлы порождаются одной и той же ошибкой: в MinGW strict weak ordering не выполняется даже для double.

UPD3. Ссылка от DAle про причины подобных ошибок при операциях с плавающей точкой.

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

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

Автор freopen, 13 лет назад, По-русски

Всем привет!

Вот уже третью зиму я приезжаю в Вологду на каникулы и провожу олимпиаду для местных школьников. В этот раз олимпиада проходит в рамках Северного математического турнира, который проходит здесь же, но по олимпиадной математике. Поэтому, в этот раз в олимпиаде участвуют школьники не только из Вологды.

Трансляция этой олимпиады пройдет на Codeforces::Тренировках ровно в это же время — во вторник, 31 января в 15:00 по Московскому времени (время в других регионах). Олимпиада будет проводиться по правилам ACM, но всего 3 часа. Т.к. я заранее не знал уровень участников, я постарался сделать олимпиаду интересной как для новичков, которые знают только основы одного из языков программирования, так и для более опытных олимпиадников, которые получили бы примерно синий или даже фиолетовый рейтинг на Codeforces. Т.к. олимпиаду готовлю я один в течение недели, глюки вполне возможны, прошу отнестись с пониманием.

Удачи всем, кто решит участвовать.

Алексей freopen Золотов

UPD. Если кому-то интересно, что происходит, примерно в 0:50 по времени контеста пропали все invokeры, которые проверяют решение. Я не могу что-то поправить и не могу даже узнать, почему это произошло. Надеюсь, что скоро починят. Простите за испорченный вечер и пропущенный SRM.

UPD2. Ссылка на разбор задач олимпиады. Еще более простое решение G.

UPD3. Поздравим sankear, который примерно за час решил все задачи олимпиады.

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

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

Автор freopen, 13 лет назад, По-русски

Завтра, 26 июля в 15:00 по Москве (время в других регионах), состоится TopCoder Single Round Match 513.

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

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

Автор freopen, 13 лет назад, По-русски

Очередной раунд состоится в субботу в 20:00 по московскому времени (время в других поясах). К раунду будут допущены лучшие 350 участников второго раунда, в четвертый раунд пройдут лучшие 150 участников третьего раунда.

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

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

Автор freopen, 13 лет назад, По-русски
Сегодня утром я обнаружил в своем ящике следующее письмо:

Dear Webmaster,

I recently came across codeforces.ru through search and really like it. I was just wondering if you would like to exchange links with me?

You may be aware that exchanging links would be mutually beneficial and also very helpful in increasing traffic or visitors for both yours and my websites. If you are interested in exchanging links, please feel free to contact me at your earliest convenience and I will send you more details.

Please let me know if you have any questions or comments.

Best regards,

Karina Sexton

Хм, похоже, автор счел меня автором сайта codeforces. Неожиданно.

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

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

Автор freopen, 13 лет назад, По-русски

В субботу в 18:00 по московскому времени пройдет третий онлайн раунд Google Code Jam (время начала в других регионах). Длительность тура - 2,5 часа. Лучшие 25 участников будут приглашены на онсайт в Токио.

Google Code Jam site

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

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

Автор freopen, 13 лет назад, По-русски


"...сюда в двенадцать часов новогодней ночи, прорвавшись через пургу, пришли люди, которым было интереснее доводить до конца или начинать сызнова какое-нибудь полезное дело, чем глушить себя водкой, бессмысленно дрыгать ногами, играть в фанты и заниматься флиртом разных степеней легкости... Они были магами потому, что очень много знали, так много, что количество перешло у них наконец в качество, и они стали с миром в другие отношения, нежели обычные люди".

А. и Б. Стругацкие.



«В наше время считается общепризнанным,
что из всего, так или иначе касающегося искусства,
ничто более не может считаться общепризнаным»
 
Теодор Адорно

Все началось с того, как один человек пытался выяснить решение задачи контеста, который проходил в данный момент. Задача была очень простая, всем было очевидно, что этот человек не займет хорошего места, не получит футболку и т.п. Но тем не менее ни один из 5000+ членов сообщества не дал ни одной подсказки (ну или хотя бы из 30+ человек, которые это видели и знали ответ). Мне такой результат уже давно кажется закономерным и я попробовал объяснить его в двух словах. Теперь попробую чуть более подробно. Заранее прошу прощения у людей, которые в это понятие вкладывают не то, что я. Я лишь хотел изложить свой взгляд.

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

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

Автор freopen, 14 лет назад, По-русски

Он пока еще не проверен уже проверен и работает с точностью до скорости ввода. Задача: отвечать на запросы: ? строка - есть ли такая подстрока в тексте, A строка - добавить строку в текст (приписать в конец). Публикую код в том виде, в котором мне его удобно отлаживать. Да, я разбираюсь в этом коде, а если наставить переносов, я разбираться в нем перестану. Если расставить переносы, получится около 35-40 строчек, что много, т.к. я не все фишки вспомнил. Может вспомню и добавлю еще. А теперь, собственно, сам код.

КОД УККОНЕНА (с комментариями)

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

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

Автор freopen, 14 лет назад, По-русски

Поздравляю поиск по тегам с долгожданным возвращением на прежнее место. Ура.

P.S. Также не могу оставить без внимания возможность написать пост и не публиковать его.

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

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

Автор freopen, 14 лет назад, По-русски
Есть такой отличный сайт для создания олимпиадных задач: Polygon. Если зайти на главную страницу этого сайта, можно увидеть, что в системе находится больше 1700 задач. Но не все так просто, ведь есть политика приватности. И действительно, ведь если можно получить доступ к любой задаче, значит, можно и получить тесты к предстоящим контестам. Но вот контест прошел и разработчики выложили тесты на свой сайт. Они открыты, но система их все равно стережет на всякий случай. Т.к. система находится в состоянии беты, возможно, в скором времени, там появится возможность отправлять задачи и контесты в общий доступ. Однако сейчас этого нет.

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

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

Автор freopen, 14 лет назад, По-русски
Появилось желание найти и структурировать все более-менее известные сайты, на которых можно скачать полный архив олимпиады (т.е. тесты, чекер, возможно, решения и т.п.). Общая цель - создать статью, с помощью которой удобно подбирать задачи для сборов и летних школ. Просьба к сообществу сообщить об известных вам сайтах. Большое спасибо.

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

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

Автор freopen, 14 лет назад, По-русски

Round 2 состоится 6 февраля в 00:00 по московскому времени. Сегодня утром мне пришло следующее письмо:

Congratulations on advancing to Online Round 2 of the Facebook Hacker Cup!

Online Round 2 will begin on February 5, 2011 at 21:00 UTC (February 5, 2011 at 1:00 PM PST) and end February 6, 2011 at 0:00 UTC (February 5, 2011 at 4:00 PM PST).

You can find the starting times for Online Round 2 around the world here.

Competitors will have three hours to solve the presented problem sets. The top-scoring 300 participants from Online Round 2 will receive an official Hacker Cup t-shirt.

The top 25 scoring contestants from Online Round 2 will be flown to Facebook headquarters in Palo Alto, California, USA to compete in the Hacker Cup Finals. Finalists will be notified via email that they have advanced to the Final Round.

---

Since you’ve made it this far, we know you’ve got skills. Send us your resume if you’re interested in working with us using the links below and we’ll fast track you through the interview process.

Software Engineer - Full Time (Employed/Not in school)
Currently employed or not in school/pursuing a degree.

Software Engineer - Full Time (Currently in school)
Currently in school/pursuing a degree and expecting to graduate soon.

Software Engineer - Internship/Co-op (Currently in school)
If you’re still studying at a university (undergrad, masters, Ph.D.) and not graduating in the next year, our internship program might be right for you! Our interns get to work on big projects, ship code and get paired with an engineering mentor for guidance and fast learning.

Happy Hacking!
The Facebook team

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

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

Автор freopen, 14 лет назад, По-русски
Прошу прощения за вынужденный спам в прямом эфире, но вопрос задать вроде бы некуда. Как в Polygon-е вставить картинки в условие? Можно ли использовать другие картинки, кроме .mp?

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

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

Автор freopen, 14 лет назад, По-русски
Я точно не знаю, насколько это правильно, но пусть уж хоть как то будет. Допустим, что это эксперимент, который может завершиться успешно или провалиться.

http://cforces.reformal.ru

P.S. Жаль, в топик нельзя встраивать js скрипты :)
P.P.S. По первому запросу организаторов проекта постараюсь максимально уничтожить результаты своей деятельности.
UPD. Немного статистики:
В среднем сайт просматривают 892 раза в день.

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

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

Автор freopen, 14 лет назад, По-русски
После подсчета результатов голосования "Best of 2010" объявлены лауреаты в следующих номинациях:
  • Участник года - Геннадий Короткевич (Беларусь, Гомель)
  • Команда года - SPb IFMO #2: Ахи, Банных, Поромов (Россия, СПбГУ ИТМО)
  • Тренер года - Михаил Мирзаянов (Россия, Саратовский ГУ)
  • Прогресс года - Moscow IPT Waterogers: Гимадеев, Шишкин, Длугач (Россия, МФТИ)
  • Дебют года - Nizhny Novgorod SU: Епифанов, Вадимов, Шмелев (Россия, Нижегородский ГУ)
  • Турнир года - ACM ICPC World Finals 2010
  • Проблемсет года - NEERC 2010
  • Задача года - NEERC 2010, J и NEERC 2010, G
  • Публикация года - http://mirror.codeforces.com/blog/entry/894 (Александр Куприн, Россия, Орловский ГТУ)
  • Проект года - CodeForces
  • Персона года - Михаил Мирзаянов (Россия, Саратовский ГУ)
  • Событие года - Открытие проекта CodeForces
Источник: http://snarknews.info

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

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

Автор freopen, 14 лет назад, По-русски
Мне захотелось наконец разобраться в способах ввода-вывода в C++, какой из них быстрее и удобнее. Поэтому я написал прогу, которая проверит скорость работы основных способов ввода/вывода в C++.
Итак, разберем все тесты по порядку:

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

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

Автор freopen, 14 лет назад, По-русски
Посоветуйте, где можно про него прочитать? Я читал вот тут: http://e-maxx.ru/algo/matching_edmonds, а потом решал задачу 1099 с тимуса, но она заTLилиась. Мой код практически идентичен e-maxxовскому. Кстати, вот код. Заранее спасибо за помощь.

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

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

Автор freopen, 15 лет назад, По-русски
Я подумал, и решил, что неплохо было бы создать список вещей, которые можно добавить в этот сайт. Сразу оговорюсь. Во первых, все это мое личное мнение. Во вторых, данный пост не является претензией к сайту. Все таки проект совсем новый и работы очень много. Этот пост - попытка структурировать пожелания и предложения по сайту. Итак:

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

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