freopen's blog

By freopen, 3 years ago, In Russian,

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

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

Пробный тур: 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)

Read more »

 
 
 
 
  • Vote: I like it  
  • +43
  • Vote: I do not like it  

By freopen, 5 years ago, In Russian,

... это не 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 про причины подобных ошибок при операциях с плавающей точкой.

Read more »

 
 
 
 
  • Vote: I like it  
  • -1
  • Vote: I do not like it  

By freopen, 5 years ago, translation, In English,

Hi there. I invite you to participate in my contest. It will take place in Codeforces::Gym at 15:00 (Moscow timezone — UTC+4) (Time in other regions).

Problems are rather easy, so it will be more interesting for div2 participants.

** Warning: I have only russian statements. This contest is only for those who can understand russian statements.**

Good luck

Alexey freopen Zolotov

Read more »

 
 
 
 
  • Vote: I like it  
  • +67
  • Vote: I do not like it  

By freopen, 5 years ago, translation, In English,

Topcoder Single Round Match 513 will be conducted tomorrow in 07:00 AM EDT (time in other regions).

Read more »

 
 
 
 
  • Vote: I like it  
  • +19
  • Vote: I do not like it  

By freopen, 6 years ago, translation, In English,

The next round will begin next saturday/sunday (time in different timezones). Up to 350 Competitors will compete, with up to 150 of the highest scoring Competitors across all rooms advancing to Online Round 4.

Read more »

 
 
 
 
  • Vote: I like it  
  • +30
  • Vote: I do not like it  

By freopen, 6 years ago, In Russian,
Сегодня утром я обнаружил в своем ящике следующее письмо:

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. Неожиданно.

Read more »

 
 
 
 
  • Vote: I like it  
  • +2
  • Vote: I do not like it  

By freopen, 6 years ago, translation, In English,

Online Round 3 will begin on Saturday, June 11, 2011 at 14:00 UTC (7:00 AM PT) and will end on Saturday, June 11, 2011 at 16:30 UTC (9:30 AM PT). (time for other regions). The top-scoring 25 contestants from the Online Round 3 will advance to the Onsite Final Round on Friday, July 29, 2011 at the Google offices in Tokyo, Japan.

Google Code Jam site

Read more »

 
 
 
 
  • Vote: I like it  
  • +30
  • Vote: I do not like it  

By freopen, 6 years ago, In Russian,


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

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



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

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

Read more »

 
 
 
 
  • Vote: I like it  
  • +56
  • Vote: I do not like it  

By freopen, 6 years ago, In Russian,

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

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

Read more »

 
 
 
 
  • Vote: I like it  
  • +80
  • Vote: I do not like it  

By freopen, 6 years ago, In Russian,

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

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

Read more »

 
 
 
 
  • Vote: I like it  
  • +27
  • Vote: I do not like it  

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

Read more »

 
 
 
 
  • Vote: I like it  
  • -2
  • Vote: I do not like it  

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

Read more »

 
 
 
 
  • Vote: I like it  
  • +14
  • Vote: I do not like it  

By freopen, 6 years ago, In Russian,

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

Read more »

 
 
 
 
  • Vote: I like it  
  • -1
  • Vote: I do not like it  

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

Read more »

 
 
 
 
  • Vote: I like it  
  • +3
  • Vote: I do not like it  

By freopen, 6 years ago, translation, In English,

http://cforces.reformal.ru

You can offer your ideas and report about bugs of Codeforces on this site.

Read more »

 
 
 
 
  • Vote: I like it  
  • +68
  • Vote: I do not like it  

By freopen, 6 years ago, In Russian,
После подсчета результатов голосования "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://codeforces.ru/blog/entry/894 (Александр Куприн, Россия, Орловский ГТУ)
  • Проект года - CodeForces
  • Персона года - Михаил Мирзаянов (Россия, Саратовский ГУ)
  • Событие года - Открытие проекта CodeForces
Источник: http://snarknews.info

Read more »

 
 
 
 
  • Vote: I like it  
  • +4
  • Vote: I do not like it  

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

Read more »

 
 
 
 
  • Vote: I like it  
  • +20
  • Vote: I do not like it  

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

Read more »

 
 
 
 
  • Vote: I like it  
  • -3
  • Vote: I do not like it  

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

Read more »