Блог пользователя e-maxx

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

Сегодняшний контест подготовлен нами, командой Saratov SU 2 (Максим Иванов, Артем Рахов, Коля Кузнецов).


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


UPD. Контест окончен, всем спасибо.

Таблица результатов.

Поздравляем rng_58 с победой!


Разборы задач: A, B, C, D, E.




Контест помогали готовить Михаил Мирзаянов и Дмитрий Матов.


Условия задач можно скачать одним PDF-файлом:


P.S. Не забудьте ознакомиться с правилами контеста Codeforces Format, если вы участвуете впервые!

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

14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Это мы для Михаила Расиховича решаем задачки чтоли?:)
14 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
наверное это сообщение следовало бы написать в статье "Формат соревнований", но там уж больно много букаф, 212 комментариев.
мне представляется логичным сделать регистрацию за несколько часов до начала соревнования, потому что те кто регистрировался неделю назад могут либо просто забыть, либо отказаться от участия в виду особых обстоятельств, и может выйти такая ситуация что в комнате полтора землекопа. а остальные "боты", которые даже не прочитали задачу.
  • 14 лет назад, # ^ |
      Проголосовать: нравится +4 Проголосовать: не нравится
    Не бойтесь писать там - в прямом эфире все хорошо видно. Да, скоро мы так и будем делать. А пока мы увеличим размер комнаты.
14 лет назад, # |
  Проголосовать: нравится +17 Проголосовать: не нравится
Удачи всем
14 лет назад, # |
  Проголосовать: нравится +28 Проголосовать: не нравится
Your username reminds me about GNU Emacs!
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
GOOD LUCK !!!
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Блин, а как заблокировать задачу ?????
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Зайдите на страницу с таблицей задач и нажмите иконку с замочком. Блокировать можно только решения, которые прошли претесты.
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
А нельзя ли сделать так, чтобы рядом со временем начала соревнования было указано, что время московское? Вроде мелочь, а по невнимательности уже второй раз опаздываю, забывая о разнице времени.
14 лет назад, # |
  Проголосовать: нравится +14 Проголосовать: не нравится
Задачу B некоторые решали на С++, используя next_permutation. При этом кое-кто не отсортировал введённые числа перед next_permutation (то есть перебираются не все шесть перестановок, а только перестановки, лексикографически не меньшие исходной). Казалось бы, решение неправильное, но за последние пять минут я так и не придумал две корректные даты, которые его заваливают.

Существует ли тест, который заваливает такое решение?
14 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится
Задам вопрос, волнующий, как мне кажется, многих: что за тест(претест) 8 в задаче D?
  • 14 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится
    8-ой тест большой. Посмотрите лучше 9-ый:
    4 2
    0 2 3 9 2
    5
    Ответ: 17.98749007417713100000

14 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    pretest #2 for problem A ? couldn't figure out where I'm doing it wrong.

    Sorry for the white message, don't know what happened.
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      it's the same as sample test #2.

      check that you use the same compiler and the same settings on your computer as in system.

14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Первый из трех раз, когда все, что я написал, прошло финальные тесты)
14 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
В задаче B какое-то безумное количество тестов :)
ИМХО, это довольно сильно замедляет систест.
Чтобы опровергнуть (или подтвердить) это хочется узнать, если возможно, сколько было тестов, сколько из них "завалили" решение и какой номер у самого далёкого завалившего теста.
  • 14 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится
    В этой задаче тесты должны покрывать множество случаев - разные мелкие ошибки могут приводить к решениям, которые будут валиться всего парой тестов из набора. Приходилось генерить тесты "против всего"
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
можно 41й тест на вторую?
  • 14 лет назад, # ^ |
      Проголосовать: нравится +4 Проголосовать: не нравится

    Я упал на 41ом, потому что при проверке даты на валидность забыл учесть високосный ли год.
    С поправкой решение прошло.

  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Тоже хотелось бы.
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Можно узнать тест №20 задачи А?
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Все, спасибо, уже не надо. Если у кого-то задача падает на этом же тесте- возможно, вы забыли привести тип при делении.
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Баг-репорт: если отправленное решение не успело протестироваться до конца контеста, то, пока оно в очереди, его статус отображается как "Системные тесты не пройдены".
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
What was pretest 6 for problem A?
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
What was pretest 7 for problem B?
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Whats 33 test case in B?
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
If you please, what's test 75 for problem B?
14 лет назад, # |
  Проголосовать: нравится +2 Проголосовать: не нравится
Просьба к организаторам соревнования, если возможно, выложить где-либо тесты к задачам сегодняшнего контеста - многим из нас очень хочется узнать на чем же наши "правильные" решения летят :)
  • 14 лет назад, # ^ |
      Проголосовать: нравится +6 Проголосовать: не нравится
    Решения которые прошли на ОК доступны. Можно сравнивать можно написать стресс-тест. Можно по сравнивать, найти отличия.

    Это будет полезнее для будущих контестов, чем посмотреть тесты.
14 лет назад, # |
  Проголосовать: нравится +6 Проголосовать: не нравится
Small request. Is it possible to give english links (to standings, problems, editorial, etc.) on english codeforces? It will be just more comfortable :)
14 лет назад, # |
  Проголосовать: нравится +4 Проголосовать: не нравится

я жолтый....наконец-то :) УРА
ну й конечно-спасибо за интересный контест !)

14 лет назад, # |
  Проголосовать: нравится +7 Проголосовать: не нравится
Баг репорт: когда я перелистываю на страницу положения, на которой меня нет, вместо

2KADR4554+149200:0492400:19133800:27 170001:20

отображает

2KADR45540+00:04+00:19+00:27 +01:20
14 лет назад, # |
  Проголосовать: нравится +4 Проголосовать: не нравится
Sorry for speaking out my real feelings.......
Problem A, B & C are too easy, just with some boring tricks.
Problem D & E are too hard for most contestants.
So if you solve problem ABC fast and get a few hacks, you will get a pretty ranking.
That's not intersting...
  • 14 лет назад, # ^ |
      Проголосовать: нравится +4 Проголосовать: не нравится
    If you thought that you solved problems correctly and the last 2 tasks were too difficult, you could start hacking. Of course first 3 problems were easy, but it was good possibility to use hacks.
14 лет назад, # |
  Проголосовать: нравится +19 Проголосовать: не нравится
I think there should be a strict policy: either don't show the test cases at all (I mean, don't answer the questions in this thread as well), or make a centralized place for them once and for all. (For example, show a link to a failed test on the status page near the submission's verdict.) The way it's done now is the worst possible one: I don't want to see a 'discussion' consisting mostly of requests to reveal a test.
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    UP!!  I agree with your opinion very much! Most people like to ask what the test is, then  debug, I don't think this is a good way to AC.
    • 14 лет назад, # ^ |
        Проголосовать: нравится +3 Проголосовать: не нравится
      How one gets his AC's is his own business, my point is that any variant would be better than what we have now.
14 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
Почему после окончания контеста пропадает возможность просматривать чужие решения?
Или скажите куда надо нажать, чтобы их увидеть :)
  • 14 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится
    зайди в соревнования, в списке задач нажми справа на число человек, которое её решило, а там нажми на любой субмит.
14 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
Спасибо авторам за контест. Старались, сразу видно. Тестов от души наделали :)
Когда обсуждали текущий формат CodeForces на сборах в Ижевске кто-то заметил, что если ты ломаешь чей-то код и он на этот момент задачу не заблокировал, то ты делаешь ему лучше. Все согласились, что это как-то нелогично. Сегодня это сыграло мне на руку. Спасибо господину frost_nova (aka Денис Яретс). Хотел было написать о том, что это делает взлом невыгодным, но потом понял, что тут тоже все принципе логично. Если ты хочешь, чтобы человек все же так и не сдал задачу, то ломай его решение под занавес соревнований. Опять же тут возникает вопрос о том, не успеют его поломать раньше. Ну тут уже как повезет :)
  • 14 лет назад, # ^ |
      Проголосовать: нравится +8 Проголосовать: не нравится
    Ты делаешь ему лучше, но лучше же становится и тебе. Win-win situation :)
    • 14 лет назад, # ^ |
        Проголосовать: нравится +1 Проголосовать: не нравится
      Расшифрую: возможно, жертва ресабмитит задачу и за этот счет вырвется вперед меня. Я таким образом спущусь на одно место вниз. Однако очки за взлом позволят мне обойти нескольких других участников (ну кроме патологических случаев, когда передо мной большой отрыв), так что я в выигрыше.
    • 14 лет назад, # ^ |
        Проголосовать: нравится +7 Проголосовать: не нравится
      Теоретически возможна ситуация, когда тебе принципиально хочется обогнать какого-то участника. Ты нашел у него багу в коде и даже придумал как повалить его решение. Разрыв между вами такой, что при потере баллов за эту задачу ты его обгоняешь. Но если ты повалишь его сразу, то он успеет поправить решение и, потеряв не так много баллов, снова пройдет претесты. Маловероятная ситуация, но все же :)
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Взлом решения может быть как благоприятной ситуацией для автора, так и безразличной: допустим кто-то прочитав условие, не оценил всей глубины задачи и написал поверхностное решение. В этом случае когда его ломают он задумывается над задачей более основательно и понимает, что все намного сложнее и решение для этой проблемы придумать уже не может за оставшееся время. Другими словами, такой взлом для автора погоды не делает (финальные тесты все исправят), а для ломающего дает плюс.
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
I would like to know why I got Runtime error on pretest 1 when using ruby for problem B. I am pretty sure there is nothing wrong with my code. I can also post it if needed.
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
for Problem A, both of my following approach works fine...
1.
if b=0 then result(0), end

for i = -1000 to 1000
if process(i)=true then result(i), end

result(NO), end

2.
for i = 0 to 1000
if process(i)=true then result(i), end
if process(-i)=true then result(-i), end

result(NO), end

But following got wrong answer on pretest 6
for i = -1000 to 1000
if process(i)=true then result(i), end

result(NO), end

It seems, it is required to output 0 when b=0, though any other answer may also be correct. I'm not sure about that.

If I am wrong, please anybody explain.

Can anybody give me actual pretest 6 for problem A?

Sorry about my poor English and for re-posting.
  • 14 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится
    check overflow in process function
    PS 
    if process(i)=true 
    same as 
    if process(i)
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      For all the approaches (accepted or wrong answer) process function is same. If overflow occurs for an approach, it should occur for all the others. Moreover process function is not recursive. So it cannot overflow.
14 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
My problem B's code was hacked during the contest and that was right, but when I resubmitted it after the contest it got Accepted!!.
It seems the testcases for problem B are not complete.
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
задача E какая-то странная, в дорешивании больше десятка раз заслал и всё тот же ВА 9. лобовое решение тоже падает на 9-ом тесте.
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    можно как-нибудь клариф сделать ?
    судя по тому что решение "в лоб" получает тот же врун, я чего-то недопонимаю из условия 
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
it will be better if we can see the cases for what we didnt pass system test 
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Is there some problem on the Server? The Judgement is really slow...
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
What was the final test 10 of B?
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Sorry, can the tutorial in English?

  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    It is in English, at least half of it :) Tutorial for C hasn't been translated into English yet, and there is no tutorial for B yet. Wait a bit, please :)
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

What happened to the judge?

14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
what is the testcase 4 of problem E :(