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

Автор Nerevar47 часов назад, По-русски

Начало финала в 12.00 по московскому времени. В зале не было интернета, поэтому делаю эту запись с опозданием.

Вот некоторые ссылки, по которым можно будет что-то узнать о ходе финала:

Болейте за наших!

Полный текст »

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

Автор Nerevar3 дня назад, По-русски

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

Полный текст »

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

Автор Nerevar4 дня назад, По-русски

На второй день нашего пребывания в польской столице мы отправились совершить пешую прогулку по центру города. Было холодно, ветрено и накрапывал дождик, поэтому некоторым членам команды, не взявшим с собой теплой одежды, пришлось прикупить шапок, шарфов и свитеров с польской символикой в сувенирных магазинах. Старый город, не сохранившийся во время Второй Мировой войны, но в точности воссозданный потом, произвел на нас очень приятное впечатление. Знаете, вот когда я пытаюсь представить исторический центр европейского города, воображение рисует именно такую картину: узкие улочки, выложенные брусчаткой, шпили башен с часами, черепичные крыши…

Полный текст »

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

Автор Nerevar7 дней назад, По-русски

Этой записью я начинаю небольшое повествование о поездке на финал чемпионата мира по программированию в Варшаву делегации Саратовского государственного университета. Состав делегации такой:

  • Максим Иванов (e-maxx), Артем Рахов (RAD), Николай Кузнецов (NALP) — команда Saratov SU 2;
  • тренер Михаил Мирзаянов с женой Екатериной и дочкой Таней;
  • Антонина Гавриловна Федорова и Татьяна Владимировна Семенова — наше руководство;
  • ну и я (Nerevar), в качестве второго тренера.

Для команды это вторая и последняя поездка на финал (в прошлом году они привезли из Орландо серебряные медали), а для меня это первая поездка на финал не в статусе участника (участвовал я в 2009 и 2010 годах, тоже успешно).

Полный текст »

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

Автор Nerevar7 месяцев назад, По-русски

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

Полный текст »

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

Автор Nerevar7 месяцев назад, По-русски

Во вторник, 18 октября, в Саратове состоится X региональная командная олимпиада школьников по программированию. Жюри олимпиады подготовило комплект интересных задач. Мы подумали, что будет неправильно, если эти задачи будут доступны для решения только приехавшим к нам школьникам, поэтому решили провести соревнование на Codeforces на задачах этой олимпиады.

Контест начнется в 10.30 по московскому времени (через полчаса после начала самой олимпиады: это сделано для того, чтобы организаторы могли спокойно ее начать) и будет длиться 5 часов. Соревнование будет проведено по правилам ACM ICPC. Участвовать в нем можно будет как лично, так и командно. Для личных участников контест будет рейтинговым. Регистрация на контест уже идет, и продлится она вплоть до конца соревнования.

В подготовке задач для олимпиады принимали участие члены лучших на этот момент студенческих команд СГУ Геральд Агапов, Полина Бондаренко, Иван Фефер, Артем Рахов, Николай Кузнецов, Эдвард Давтян, Павел Холкин и Игорь Кудряшов, а также ветераны Наталья Бондаренко, Михаил Мирзаянов и я, Дмитрий Матов. Мария Белова также отлично потрудилась и перевела задачи олимпиады на английский язык.

Желаю всем получить удовольствие от решения задач!

Условия задач будут доступны по ссылкам:

В задачах будет использован файловый ввод-вывод. Внимательно читайте условия!

Полный текст »

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

Автор Nerevar14 месяцев назад, По-русски
17 марта 2011 года аспирантка Саратовского государственного университета Наталья Бондаренко успешно защитила кандидатскую диссертацию!

Это событие примечательно по нескольким причинам. Во-первых, защита произошла на первом году обучения в аспирантуре, через полгода (!) после поступления в нее. Во-вторых, Наталья стала первым человеком из Саратова, кому удалось после выдающихся достижений в соревнованиях по программированию добиться успеха в науке и защитить диссертацию. 

Наташ, от себя и всего ЦОПа поздравляю тебя и желаю дальнейших успехов в любом деле, за которое ты примешься!

Присоединяйтесь к поздравлениям:)

Полный текст »

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

Автор Nerevar17 месяцев назад, По-русски

Как принято говорить в таких случаях: "Вот и закончилась серия заочных школьных олимпиад ЗКШ 2010/2011!"

Все олимпиады серии проводились при поддержке компаний Yandex и ABBYY. Было проведено 6 соревнований: 3 командных олимпиады и 3 индивидуальных. Самое время подвести итоги и выявить победителей олимпиады. Результаты по двум номинациям (командной и личной) подводились отдельно - в каждой из них для участников брались в расчет результаты двух лучших выступлений из трех. Вот ссылки на суммарные результаты по каждой номинации:

Всего на серию было зарегистрировано около 750 участников из самых разных стран мира. Конечно, большую часть составили участники из России. Как можно видеть, в командных олимпиадах приняло участие около 180 команд, а в индивидуальных - более 400 школьников.

После совещания с организаторами ЗКШ было принято решение следующим образом подвести результаты. В командном зачете награждаются лучшие 34 команды (более 175 баллов), из них:
  • дипломы первой степени получают лучшие 8 команд:
    1. команда Gennady Korotkevich (Беларусь, Гомель)
    2. ФТЛ №1 #1 (Россия, Саратов)
    3. команда despise_oimaster (Китай)
    4. Минск-1 (Беларусь, Минск)
    5. команда ЛИТ: ЛИТ_1 (Украина, Александрия)
    6. команда Fisher is a ball! (Россия, Пермь)
    7. команда Гомель-2 (Беларусь, Гомель)
    8. команда Мозырь-1 (Беларусь, Мозырь)
  • дипломы второй степени получают команды, занявшие места с 9-го по 19-е
  • и дипломы третьей степени получают команды, занявшие места 19-го по 33-е (обратите внимание, что две команды поделили 33-е место).

Полный текст »

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

Автор Nerevar17 месяцев назад, По-русски

Задача B. Футболки от спонсора.

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

Задача D. Парковка.

Будем хранить множество машин, которое в данный момент находится на парковке. То, как мы его будем хранить, в данной задаче не принципиально. Для каждой машины, которая в данный момент находится на парковке, будем хранить ее длину и занимаемую ей позицию. При обработке запроса типа 2 нам надо найти машину, которая должна покинуть парковку, и удалить ее из множества. Для этого мы должны нумеровать машины и по номеру запроса понимать, к какой машине он относился. Теперь рассмотрим запрос типа 1. Поскольку водитель стремится поставить машину как можно ближе к началу парковки, то мы можем сузить множество рассматриваемых вариантов положений для парковки: включим в это множество начало парковки а также все позиции, которые находятся ровно через b метров после переднего края какой-либо машины. Для каждой из этих позиций мы должны выяснить, можно ли припарковать машину в ней, а затем выбрать самую ближайшую из допустимых позиций.

Задача E. Расческа.

Пусть входная матрица называется a. Посчитаем частичные суммы в каждой строке: . Естественно, все частичные суммы надо посчитать за O(nm). Теперь будем решать задачу динамическим программированием. Пусть di, j это наибольшая сумма чисел, которую мы можем взять в первых i строках, не нарушая в них условия "расчески", при этом взяв в i-й строке j чисел. Очевидна инициализация динамики: d1, j = s1, j. Теперь определим переходы для i > 1:

1) Если i четно, то .

2) Если i нечетно, то .

Вычисление значений di, j непосредственно по этим формулам имеет асимптотику O(nm2). Теперь заметим, что если в случае, когда i четно, перебирать j по убыванию, а если нечетно, то по возрастанию, и вычислять di, j в таком порядке, то максимум значений di - 1, k в предыдущей строке можно не вычислять каждый раз, а считать по ходу. Такое решение будет иметь сложность O(nm) и будет проходить все тесты.

Полный текст »

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

Автор Nerevar17 месяцев назад, По-русски

Всем доброго времени суток.

Завтра, 5 декабря, в 11:00 по московскому времени я приглашаю всех желающих принять участие в очередном соревновании Codeforces. Оно будет одновременно являться очередной индивидуальной олимпиадой в рамках ЗКШ (подробности тут) и обычным раундом Codeforces для тех, кто не участвует в зачете ЗКШ.

Это соревнование, как и все предыдущие олимпиады ЗКШ, проводится при поддержке компаний Яндекс и ABBYY.

Совернование пройдет по правилам ACM-ICPC.

Участники, не участвующие в зачете олимпиад ЗКШ, будут отображаться в таблице результатов как участники "вне конкурса". Тем не менее, раунд будет рейтинговым для всех, а рейтинг будет посчитан в соответствии с объединенной таблицей результатов.

Авторы задач соревнования: Наталья Бондаренко и я. Благодарим Эдварда Давтяна за помощь в подготовке контеста, а также Марию Белову за перевод условий задач.

Не забудьте зарегистрироваться для участия в соревновании. Удачи на контесте!

UPD: Как только начнется соревнование, то будут доступны задачи в PDF (для печати):

UPD: Результаты соревнования. Поздавляем Геннадия Короткевича, победившего в олимпиаде ЗКШ, и Петра Митричева, победителя 43 бета-раунда.

UPD: Ссылки на разборы задач: A,C,F,G и B,D,E.

Полный текст »

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

Автор Nerevar18 месяцев назад, По-русски

Задача I. Игрушки.

В задаче необходимо вывести все возможные разбиения заданного множества на подмножества в порядке, напоминающем код Грея. Перейдем к заданию разбиений с помощью так называемых ограниченно растущих строк. Строка a1a2an называется ограниченно растущей, если a1 = 0 и aj + 1 ≤ 1 + max(a1, ..., aj) для 1 ≤ j < n. Ограниченно растущая строка для разбиения строится так: ai = aj тогда и только тогда, когда элементы i и j принадлежат одному подмножеству в этом разбиении. Например, ограниченно растущая строка для разбиения {1,3},{2},{4} есть 0102.

Теперь научимся перебирать все ограниченно растущие строки, каждый раз изменяя одно значение в текущей строке для перехода к следующей. Очевидно, что применительно к разбиениям это будет означать именно то, что требуется в задаче. Достаточно простой способ построения такого списка ограниченно растущих строк называется схемой Эрлиха. Пусть имеется список ограниченно растущих строк s1, s2, ..., sk длины n - 1, удовлетворяющий требуемому порядку. Получим из него список для n. Пусть si = a1a2... an - 1, а m = 1 + max(a1, ..., an - 1). Тогда, если i нечетно, то будем поочередно приписывать к строке si цифры 0, m, m - 1, ..., 1, иначе будем приписывать цифры 1, ..., m - 1, m, 0. В результате каждого приписывания мы получаем очередную строку длины n. Таким образом, начиная со списка 0 для n = 1 мы последовательно получим списки 00, 01 для n = 2 и 000, 001, 011, 012, 010 для n = 3. Схема Эрлиха описана в 3 выпуске 4 тома труда Кнута "Искусство программирования" на страницах 83-84.


Задача G. Тир.

Будем решать немного другую задачу: для каждой мишени определим, какой выстрел ее поражает. Для этого упорядочим все мишени по возрастанию координаты z и будем перебирать их в этом порядке. Мишень обрабатывается следующим образом. Рассмотрим все выстрелы, которые потенциально могут в нее попасть. Очевидно, что это такие выстрелы, координаты которых попадают в прямоугольную область, которая является проекцией мишени на плоскость стрельбы. Среди таких выстрелов мишень поразит тот выстрел, который произошел раньше остальных. После того, как мы нашли этот выстрел, мы исключим его из дальнейшего рассмотрения, и будем дальше перебирать мишени. Легко видеть, что будет выполняться такой инвариант: на момент обработки очередной мишени все выстрелы, которые были направлены в нее, но не долетели по причине попадания в другие мишени, будут уже обработаны.

Теперь о том, как эффективно реализовать описанный алгоритм. Будем хранить выстрелы в некоторой структуре данных. Легко выделить 2 вида запросов к этой структуре:

1) найти элемент с наименьшим значением среди всех, попадающих в заданную прямоугольную область.
2) удалить заданный элемент.

В качестве такой структуры можно использовать двумерное дерево отрезков с функцией минимума. Не буду вдаваться в то, что представляет из себя эта структура. Некоторую сложность представляет организация удаления элемента. Но ситуация облегчается тем, что присутствуют только лишь операции удаления, а добавлений нет. Поэтому на каждом уровне дерева можно заранее предподсчитать, какой элемент станет следующим минимумом при удалении данного. Общая асимптотика авторского решения составляет O((N + M)log2N.


Задача F. BerPaint.

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

1) Ребро между двумя нефиктивными отрезками проводится, если они имеют общую концевую точку.
2) Ребро между областью и отрезком (неважно, фиктивный он или нет) проводится, если они имеют более одной общей точки (т.е. отрезок является частью границы области).

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

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

Полный текст »

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

Автор Nerevar19 месяцев назад, По-английски
Imagine that we have successfully processed first i - 1 bowls, i.e. we know height of the bottom yj for every bowl j (1 ≤ j < i). Now we are going to place i-th bowl. For each j-th already placed bowl, we will calculate the relative height of the bottom of i-th bowl above the bottom of j-th bowl, assuming that there are no other bowls. Lets denote this value by Δi, j. It is obvious that height of the new bowl is equal to the maximal of the following values: yi = max(yj + Δi, j).

Now I will describe how to calculate Δi, j. Firstly, consider two trivial cases:

I. ri ≥ Rj: bottom of i-th bowl rests on the top of j-th. Then Δi, j = hj.
II. Ri ≤ rj: bottom of i-th bowl reaches the bottom of j-th. Then Δi, j = 0.

Then there are three slightly more complicated cases.

1. ri > rj: bottom of i-th bowl gets stuck somewhere between the top and the bottom of j-th,
touching it's sides. From the similarity of some triangles we get that .

2. Ri ≤ Rj: top of i-th bowl gets stuck somewhere between the top and the bottom of j-th,
touching it's sides. From the similarity of some triangles we get that .

3. Ri > Rj: sides of i-th bowl touch the top of j-th in it's upper points. Then .

Note that, for example, cases 1 and 2 do not exclude each other, so the final value of Δi, j is equal to the maximum of the values, computed in all three cases.

Note that if the calculated value of Δi, j is negative, the result should be 0. Thanks to adamax for pointing it.

Полный текст »

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

Автор Nerevar19 месяцев назад, По-русски

Всем доброго времени суток.

Сегодня на Codeforces необычный день: сразу два раунда, днем, да еще со столь небольшим перерывом. А объясняется это тем, что сегодня в Саратове проходит IX Региональная командная олимпиада школьников по программированию, и задачи с нее (а они весьма неплохие) решено было дать на раунды Codeforces.

По этой причине авторов у сегодняшних задач много. Не поленюсь перечислить весь состав жюри олимпиады, все члены которого хорошо знакомы вам как авторы задач на Codeforces. Это Артем Рахов, Николай Кузнецов, Наталья Бондаренко, Геральд Агапов,Полина Бондаренко, Иван Фефер, Эдвард Давтян, Игорь Кудряшов, Павел Холкин и я. Все мы отлично потрудились и надеемся, что вы оцените наши задачи.

Отдельное спасибо стоит сказать Марии Беловой и Юлии Сатушиной за перевод задач на английский язык.

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

Желаю всем удачи на контестах!

UPD: Результаты 35-го раунда. Поздравляем победителя, участника с ником Naginchik, с впечатляющим дебютом!

UPD: Результаты 36-го раунда.

Ссылки на разборы задач: A, B, C, D, E.

Полный текст »

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

Автор Nerevar23 месяца назад, По-русски
Для удобства просмотра текущих результатов соревнований в интерфейс добавлены два улучшения.

Полный текст »

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

Автор Nerevar2 года назад, По-русски
В четверг, 15 апреля, в 19:45 по московскому времени состоялся Codeforces Beta Round #10. В этот раз автором задач для контеста выступаю я. Хочется поблагодарить создателя Codeforces Михаила Мирзаянова за корректировку условий и Юлию Сатушину за отличный перевод задач на английский.

Сразу хочется извиниться за задачу D, потому как уж точно в моем авторском решении был баг. Более того, возможно, что эта задача вообще неразрешима за полиномиальное время даже при небольшом диапазоне чисел [0.255]. Хотя мне так не казалось:))) Надеюсь, что при любом итоге исследования этой задачи никто сильно не обидится.

UPD: Я уверился в палености своего рещения по D. Еще раз приношу свои извинения. Как сказал бы председатель жюри KPI-Open, задача получилось "с хитринкой", то бишь кривая. Никакого перетестирования решений, сданных на контесте, не будет. Задача будет изменена таким образом, чтобы в ней требовалось найти НОВП для двух последовательностей. Для такой задачи уж точно решение существует.

UPD: Задача D изменена так, как я до этого обещал.

Полный текст »

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

Автор Nerevar2 года назад, По-русски
Сегодня состоялся очередной этап Открытого Кубка России по программированию. Проводился он на задачах олимпиады ЮФУ в Таганроге. Я уверен, что кто-нибудь напишет на codeforces подробный "отчет" о мероприятии в ЮФУ. Я же здесь изложу свои впечатления и предлагаю обсудить этап кубка.

Полный текст »

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

Автор Nerevar2 года назад, По-русски
Добавлена новая возможность для использования формул в тексте.

Полный текст »

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

Автор Nerevar2 года назад, По-русски

Дорогие, милые девушки! От лица команды проекта Codeforces хочу поздравить вас с замечательным праздником, с Международным Женским Днём!

Пусть вас всегда окружают любовь и внимание! Пусть вы никогда не перестанете ловить восхищенные взгляды мужчин! Оставайтесь красивыми и умными и продолжайте радовать нас!

Полный текст »

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

Автор Nerevar2 года назад, По-русски
В одном из обсуждений зашла речь про использование на соревнованиях prewritten code (части кода, которые были написаны до начала соревнования и копируются в код решения). К сожалению, имеют место и другие вещи, которые справедливо можно назвать читерством и надо порицать. Не знаю, будет ли в правилах Codeforces что-либо сказано на этот счет, но по-моему это стоит обсудить.

На разных соревнованиях к использованию prewritten code относятся по-разному. В соревнованиях ACM ICPC это, естественно, запрещено. Однако замечу, что ACM ICPC состоит из онсайт-соревнований, поэтому проконтролировать соблюдение этого правила элементарно. Проблема с применением этого правила возникает на онлайн-соревнованиях. На наиболее известных соревнованиях (TopCoder и GCJ) к этому подходят просто: использование prewritten code разрешено. Есть, к примеру, соревнования snarknews, проводимые при поддержке журнала Мир ПК (pcworld.snarknews.info ). На них использование prewritten code строжайшим образом запрещено. Я совершенно уверен, что огромное количество участников этих соревнований в той или иной степени нарушает это правило, однако случаи, когда кто-либо за это наказывался, единичны. В одной из таких ситуаций человек отправил солидное по размеру решение через пару минут после начала соревнования, т.е. только полнейшая очевидность нарушения стала причиной дисквалификации. Олег Христенко, помнится, тогда на сайте писал, что, мол, поскольку заявки на мировой рекорд по скорости набора кода подано не было, то человек использовал prewritten code.

На соревнованиях snarknews характерно применение еще одного "запрещенного приема". Дело в том, что задачи для этих соревнований зачастую не оригинальные, а целиком берутся с уже прошедших зарубежных соревнований. Соответственно, при наличии навыков поиска в интернете можно найти и тесты, и авторские решения. Удивительно, но находились люди, которые просто отсылали авторские решения. Опять же в силу очевидности нарушения их постигало наказание. Но к использованию тестов к задаче и авторских решений можно подходить и с большей осторожностью...

Но это все мелочи. Эти нарушения "закладываются" в не самой удачной, на мой взляд, концепции конкретных соревнований. Для того, чтобы таких нарушений не было, достаточно 1) разрешить использование prewritten code и 2) готовить для соревнований оригигальные задачи.

А теперь о более серьезной вещи, которая может случиться на любых онлайн-соревнованиях. Речь об обмене кодом между участниками. Это самое серьезное нарушение, пункт о котором есть в правилах практически каждого соревнования. За это грозят пожизненной дисквалификацией и прочими карами. И хочется верить организаторам, что они действительно способны покарать читеров. Но насчет этого есть сомнения. И корень этих сомнений в том, что совершенно непонятно, как это проконтролировать. Кому-то может показаться, что это совсем просто: надо глазом (или программно) сравнить решения и сделать вывод, имела ли место передача кода. Не работает. Расскажу один случай. Дело в том, что меня хотели дисквалифицировать с Google Code Jam 2009 по подозрению в таком читерстве. Об этом можно почитать здесь . Обошлось:))

Тогда я в первый раз задумался, а как же просто, грамотно и эффективно бороться с подобными нарушениями правил? Какие у вас есть идеи? Какие еще разновидности читерства на онлайн-соревнованиях вы знаете? Сталкивались ли вы когда-нибудь с такими случаями? Были ли виновные наказаны?

Полный текст »

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