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

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

Всем привет!)

Сегодня состоится очередной раунд Codeforces #143 для участников второго дивизиона. Наверное, нет смысла напоминать, что ребята с рейтингом больше 1699 могут поучаствовать в нем вне конкурса.

Авторами задач для данного мероприятия являются Холкин Павел (HolkinPV) и Кузнецов Николай (NALP). В подготовке контеста также участвовали Кудряшов Игорь (Igor_Kudryashov) и Агапов Геральд (Gerald). Отдельную благодарность выражаем создателю прекрасного ресурса Codeforces Михаилу Мирзаянову (MikeMirzayanov) и нашей переводчице Марии Беловой (Delinur).

Распределение баллов по задачам будет определено через некоторое время, следите за изменениями).

Желаем всем получить удовольствие от соревнования и почерпнуть для себя что-то новое и полезное.

UPD: Распределение баллов по задачам будет стандартное 500-1000-1500-2000-2500.

UPD2: Раунд окончен. Благодарим всех за участие. Шесть человек, занявшие первые места решили все 5 задач, поздравляем их с отличным выступлением.

1) teoy

2) gomineral02

3) mrNobody

4) Ryannnnnnn

5) marschenly

6) KuchumovIlya

Разбор задач будет опубликован через некоторое время.

UPD3: Разбор опубликован, его можно найти здесь

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

»
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Одна только просьба — расположите задачи в порядке возрастания предполагаемой сложности. В прошлом вашем контесте задачу Е решили в два раза больше людей, чем задачу С.

»
14 лет назад, скрыть # |
 
Проголосовать: нравится +2 Проголосовать: не нравится

Надеюсь задачи будут интересными.

»
14 лет назад, скрыть # |
 
Проголосовать: нравится +12 Проголосовать: не нравится

270 new user and keep growing.

»
14 лет назад, скрыть # |
← Rev. 2  
Проголосовать: нравится +6 Проголосовать: не нравится

Следим за изменениями с надеждой на привычную разбалловку.

upd. УРА!

»
14 лет назад, скрыть # |
 
Проголосовать: нравится +20 Проголосовать: не нравится

First Codeforces round on Sunday since a long time!!! This should happen more frequently!! Thanks to authors!!! Good luck to new users!!

»
14 лет назад, скрыть # |
 
Проголосовать: нравится +10 Проголосовать: не нравится

Задачи отличные!

»
14 лет назад, скрыть # |
 
Проголосовать: нравится +8 Проголосовать: не нравится

У меня одного недоумение насчет D? Почему эта задача D?

»
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Отличное соревнование! Первое, в котором 4 решения прошли претесты и, я надеюсь, пройдут и системное тестирование.

»
14 лет назад, скрыть # |
 
Проголосовать: нравится +10 Проголосовать: не нравится

наконец-то отличный div 2. раунд

»
14 лет назад, скрыть # |
← Rev. 2  
Проголосовать: нравится +11 Проголосовать: не нравится

Was Problem D really that easy or have I done some mistake ??My code

If I am correct then I think the problems should have been aranged as A , RightShift( B,C,D ) ,E

»
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Really nice competition, though it was kinda surprising that the 4-th task was solved by 6 IF-s, i mean at standart score distribution it's expected to be sorted by difficulty. :)

»
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

What an amazing Round. 5 Problems are very nice. Thank Authors very much :)

»
14 лет назад, скрыть # |
 
Проголосовать: нравится +5 Проголосовать: не нравится

Отличный контест. Спасибо авторам. Но почему в последние минуты на задачу В давало "Неправильный ответ на претест 1"?

»
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Классный раунд...!!! Большое спасибо авторам....!!!!!

»
14 лет назад, скрыть # |
← Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится

А какой ответ в E на тест:

5 5
1 2
2 3
2 4
2 5
4 5
1
1 3

?

»
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

any simple solutions of B?just some words about solution pls

»
14 лет назад, скрыть # |
 
Проголосовать: нравится +32 Проголосовать: не нравится

Почему-то если люди решили в контесте больше задач, чем обычно, то он становится классным. А если, ни дай бог, меньше, то все, контест — уг.

»
14 лет назад, скрыть # |
 
Проголосовать: нравится +12 Проголосовать: не нравится

Спасибо авторам, отличный раунд! Понравились задачи B и С, из разбора Е наверняка можно будет почерпнуть новую информацию.

»
14 лет назад, скрыть # |
 
Проголосовать: нравится +8 Проголосовать: не нравится

D стоит 2000, ага. Задачка на ветвление.

»
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Ребят, кто делал Б динамикой? Весь раунд ловил 4 тест..

  • »
    »
    14 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +15 Проголосовать: не нравится

    Извращенец.

  • »
    »
    14 лет назад, скрыть # ^ |
    ← Rev. 3  
    Проголосовать: нравится 0 Проголосовать: не нравится

    Решал так. Пусть d=**a**-**b**(из условия). В ответ сразу войдет a, поэтому подбираем его от 1 до L, причем так, чтобы |b| был минимален, этот b будет d для следующего шага. Повторяем n-1 раз. Причем на последнем шаге b должен быть еще натуральным. Минимум мы ищем для того, чтобы в случае большого первичного значения d у нас была возможность его уменьшить к (n-1)-ому шагу, в противном случае — разложения не существует.

»
14 лет назад, скрыть # |
 
Проголосовать: нравится +4 Проголосовать: не нравится

Очень печально сдать А на 1 минуте и затем больше ничего не решить >_<.

»
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Сейчас просматривал решения людей, у которых упала 1 задача. Наткнулся на решение участника korvin42: 2313221. До сих пор в недоумении: почему это упало?

P.S. В задаче B есть опечатка: не "время", а "времени")

»
14 лет назад, скрыть # |
 
Проголосовать: нравится -10 Проголосовать: не нравится

Бредовый раунд

»
14 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится

Когда будет разбор? Сегодня дождусь?

»
14 лет назад, скрыть # |
 
Проголосовать: нравится +19 Проголосовать: не нравится

the order should be A,D,B,C,E

»
14 лет назад, скрыть # |
 
Проголосовать: нравится +4 Проголосовать: не нравится

Давно у нас 500=2000? Писать B было намного сложнее, чем D. По-моему, расстановка A-D-B-C-E чуть больше соответствует истине.

»
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Возникает естественный вопрос — почему не используется динамическая разбалловка?

  • »
    »
    14 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +8 Проголосовать: не нравится

    Потому что она — недоделанная ***ня.

  • »
    »
    14 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    Потому что результаты контестов с дин. разбалловкой больше зависят от случайностей.

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

    • »
      »
      »
      14 лет назад, скрыть # ^ |
       
      Проголосовать: нравится +3 Проголосовать: не нравится

      Тогда другой естественный вопрос: зачем ставить задачу для 7 класса на 4 место? Впрочем, вряд ли тут кто-то знает ответ.

      • »
        »
        »
        »
        14 лет назад, скрыть # ^ |
         
        Проголосовать: нравится 0 Проголосовать: не нравится

        Потому что это — геометрия. И не во всех школах(более того, почти ни в каких) преподают такую геометрию в 7 классе, ага.

        • »
          »
          »
          »
          »
          14 лет назад, скрыть # ^ |
           
          Проголосовать: нравится 0 Проголосовать: не нравится

          Не так давно в DivII была одна геометрия даже и поближе, чем D...

        • »
          »
          »
          »
          »
          14 лет назад, скрыть # ^ |
           
          Проголосовать: нравится +2 Проголосовать: не нравится

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

      • »
        »
        »
        »
        14 лет назад, скрыть # ^ |
         
        Проголосовать: нравится 0 Проголосовать: не нравится

        Это скорее к авторам. По неведомым данной ветке форума причинам, они посчитали ее стоящей 2k баллов.

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

        Но чтобы так через две задачи — это оригинально. B даже кодилась сложнее D, та и идея вроде бы не проще.

        (Я, как полная идиотина, додумался прочитать условие D где-то на 1 30. Счастья-то...)

»
14 лет назад, скрыть # |
← Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится

Расскажите как B и С решались, пожалуйста, подробно если можно.

  • »
    »
    14 лет назад, скрыть # ^ |
    ← Rev. 2  
    Проголосовать: нравится +3 Проголосовать: не нравится

    C-префикс суммы + дихотомия!

    • »
      »
      »
      14 лет назад, скрыть # ^ |
       
      Проголосовать: нравится +1 Проголосовать: не нравится

      А можно немного подробнее, если не сложно?

      • »
        »
        »
        »
        14 лет назад, скрыть # ^ |
        ← Rev. 2  
        Проголосовать: нравится +6 Проголосовать: не нравится

        С можно проще — двумя указателями.

        Сначала сортируем.
        Пока можем (стоимость не привысила k) — двигаем первый указатель x вправо, при этом иногда увеличивая стоимость: если a[x] != a[x-1] то s += (x-y-1) * (a[x] - a[x-1]). Пытаемся улучшить ответ.

        Затем пока стоимость больше k — двигаем второй указатель y вправо, уменьшая стоимость на a[x] - a[y].

        Линейное решение + время сортировки.

    • »
      »
      »
      14 лет назад, скрыть # ^ |
       
      Проголосовать: нравится 0 Проголосовать: не нравится

      Можно решать без префикс-сумм с помощью двух указателей.

  • »
    »
    14 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +3 Проголосовать: не нравится

    B в лоб. Очевидно, что d=a(1)-a(2)+a(3)-a(4)+..., ну или S1=a(1)+a(3)+..., S2=a(2)+a(4)+..., d=S1-S2. Можно легко посчитать макс. и мин. значения, которые можно получить: Заметим, что в S1 элементов q=[(n+1)/2], а в S2 — p=[n/2]. Тогда max=q*l-p, min=q-p*l. Для существования ответа необходимо и достаточно min<=d<=max.

    А дальше можно просто придумать, как построить s1 и s2 подходящим образом. Я, например (на примере положительного d) брал это d и поступал след. образом:

    пока d>l-1, ставлю на нечетное место l, а на четное 1, и из d вычитаю l-1 (ну, разность между этими элементами). После этого получаем d<l-1, что позволяет поставит необходимое число (d или d-1 в зависимости от честности n) в соотв. ячейку, а дальше дописать единицы.

    Явно существует путь проще, но я его не нашел.

    Сам не против послушать решение C.

  • »
    »
    14 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +1 Проголосовать: не нравится

    C:
    Отсортируем массив; понятно, что число из ответа изначально есть в массиве. Давайте для каждого числа узнаем ответ для него. Пусть это ai. Так как у нас есть только прибавления, нам интересны только числа меньшие ai, т.е. до него. Запустим бинпоиск, чтобы найти максимальное количество чисел, которые можно сделать равными ai. Можно доказать, что выгодно брать суффиксы из последовательности a1, a2, ..., ai. Осталось научиться проверять можно ли числа на подотрезке превратить в ai, это легко выяснить, зная сумму на этом подотрезке.
    Код в точности по этому описанию.

  • »
    »
    14 лет назад, скрыть # ^ |
    ← Rev. 2  
    Проголосовать: нравится +5 Проголосовать: не нравится

    Я решал так. Отсортируем массив за O(n * log2n) быстрой сортировкой. Далее, воспользуемся методом двух указателей. Сначала оба указателя на 1 элементе. Потом сдвигаем правый указатель на один элемент вправо и двигаем левый, пока k ≤ count, где count равен количеству действий для доведения всех чисел с l по r до a[r]. Все решение работает за O(n * log2n) + O(n) = O(n * log2n). Код с таким решением.

»
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Для меня задачи показались не совсем очевидными (решил три, С и E не сделал), удивляюсь как много людей начало решать столько задач в див.2, неужели все стали такие крутые.

»
14 лет назад, скрыть # |
 
Проголосовать: нравится +6 Проголосовать: не нравится

Nice problem set and competition, though, I believe System test was fast because of El Clasico :D

»
14 лет назад, скрыть # |
← Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится

почему у меня здесь 2319144 ВА на первом тесте? upd: поставил r:=0; и оно почему-то прошло 2319298. почему?

»
14 лет назад, скрыть # |
← Rev. 4  
Проголосовать: нравится +19 Проголосовать: не нравится

Hi! How can this submission get AC on problem C: http://www.codeforces.com/contest/231/submission/2319083 But it gets the wrong answer on this test:

10 0
1 2 3 4 5 6 7 8 9 10

Correct output must be: 1 1, but its result is 2 2. Is the test case weak ?

»
14 лет назад, скрыть # |
 
Проголосовать: нравится +3 Проголосовать: не нравится

Контест получился хорошим.Но не менее важно дорешивание.

»
14 лет назад, скрыть # |
 
Проголосовать: нравится +4 Проголосовать: не нравится

The problemset was good. Not very easy and not very hard. Liked it really much.

»
14 лет назад, скрыть # |
← Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится

как в java сортить массив, и при этом быть уверенным, что она работает не n*n в худшем случае?

»
14 лет назад, скрыть # |
← Rev. 2  
Проголосовать: нравится +1 Проголосовать: не нравится

C упала на тесте

1 0
0

:facepalm:

»
14 лет назад, скрыть # |
← Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится

Has anybody here solved B using Dynamic Programming?

»
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

контест -- СУПЕР Задачи легки на понимание А первая задача -- ХАЛЯВА

»
14 лет назад, скрыть # |
 
Проголосовать: нравится +4 Проголосовать: не нравится

Great competition!

»
14 лет назад, скрыть # |
 
Проголосовать: нравится +5 Проголосовать: не нравится

Хороший раунд, но разбалловка, конечно, странная... Я задачу B почти полтора часа кромсал, все варианты рассматривал, а D за 10 минут 6 ифами сделал. Может за нее 2000 баллов дают, потому что она для новичков страшновато выглядит, если не читать условия?

»
14 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится

very nice problem set, thank you very much ^^

»
14 лет назад, скрыть # |
← Rev. 3  
Проголосовать: нравится 0 Проголосовать: не нравится

I think there were lots of WA's on problem C. Maybe reason is there were no alert about not using %lld specifier on C++. So lots of people didn't use 64-bit integer. and maybe 64-bit integer was not neccessary on authors solution.

UPD: The only thing different with this comment and mine is downvotes and upvotes :D

»
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Отличный контест. Только задача В мне показалась намного сложнее чем Д. Возможно это субъективное мнение.

»
14 лет назад, скрыть # |
← Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится

……

»
14 лет назад, скрыть # |
 
Проголосовать: нравится -12 Проголосовать: не нравится

Как получить кучу восторженных откликов за контест div 2? Предложить в нем 4 простые задачи и пятую с более-менее очевидным решением из нагромождения классических алгоритмов.

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

  • »
    »
    14 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    C — очень хорошая задача, а вот B я так и не понял, как делать, во время контеста)
    B и D, думаю, следовало поменять местами.

  • »
    »
    14 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    C — довольно интересна, D слишком легкая как для D, но в целом контест довольно хороший. А у меня радость от решения задачи пропорциональна (сложности) / (время, которое я потратил на решение).

»
14 лет назад, скрыть # |
← Rev. 3  
Проголосовать: нравится 0 Проголосовать: не нравится

Куда спрятали разбор?

UPD: Спасибо, вернули. Не пугайте ;)

»
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Читаю и ору с себя:/

Все пишут про халявную D и 6 ифов. Я умудрился написать в ней пересечение прямой с плоскостью и рассматривал варианты: если прямая из точки обзора до центра плоскости не пересекает другие — значит можно добавить к сумме. По-настоящему халявная А и довольно идейно простая С. А предположив, что надо было кодить в B, поплевался и начал решать другие задачи. Да и вроде бы это кодить и надо было. Странный раунд :/ Неудивительно что 195ый(долбанная Д — такая простая для всех).

»
14 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится

I really got surprised when I saw problem B is dp, ...!

»
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

The hyperlink of editorial is linked to russian editorial again:( hope you can fix it:)

»
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Хороший контест, спасибо!) Правда, то, что кактус вершинный, я понял только что.))

»
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

I think that problem C was extremely harder than problem D!