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

Автор csacademy, 7 лет назад, перевод, По-русски

Привет, Codeforces!

Мы проводим очередной раунд на нашем сайте csacademy.com. Раунд #28 состоится в среду, 10.05.2017 16:00 (Мск). Этот раунд создан специально для второго дивизиона (Div. 2), что означает что рейтинг изменится только у пользователей с общим счётом ниже 1650, а также пользователей без рейтинга. Пользователи с более высоким рейтингом могут принять участие неофициально.

Если вы хотите принять участие в этом раунде, Вам необходимо зарегистрироваться перед началом соревнования. Этот раунд создан для второго дивизиона (Div2.), традиционно он будет состоять из 5 задач средней сложности.

Специальные призы:

В этом раунде мы разыграем 3 специальных приза, а именно индивидуальные занятия с нашим основным составителем задач и действующим тренером, wefgef. Каждое занятие — это сессия длительностью 1 час 30 минут по Skype. Тема индивидуального урока может быть выбрана победителем самостоятельно. Призы будут распределяться следующим образом:

  • 1 случайный приз для топ 20%;
  • 1 случайный приз для для следующих 30%;
  • 1 случайный приз для остальных 50%

Формат конкурса:

  • Вам предлагается решить 5 задач за 2 часа;
  • Мы обеспечиваем обратную связь на протяжении всего конкурса;
  • Задачи не будут засчитываться частично: то есть либо вы выполнили задание, либо нет (ACM-ICPC-style);
  • Оценки будут присваиваться в динамике: в зависимости от количества пользователей, которые справились с проблемой, оценка будет варьироваться от 100 до 1000;
  • Помимо баллов, у каждого участника будет "пенальти", который будет учитываться при определении победителя

О системе пенальти:

  • Пенальти вычисляется по следующей формуле: время, потраченное на выполнение последнего выполненного задания + "пенальти" за каждую решённую задачу. "Пенальти" для каждой решенной задачи равен log2 (no_of_submissions) * 5;
  • Решения, которые не компилируются или не подходят для примеров тестовых случаев игнорируются;
  • После того, как вы решили задачу и отослали результат, вы можете поэкспериментировать с решением, все последующие ответы уже не будут учитываться

Изменения на платформе:

  • CS Academy стал сайтом — одностраничником;
  • Новый раздел сразу под окном чата;
  • Изменился рейтинговый лимит дивизиона, до 1650 соответственно.

Мы всегда рады Вам в наших уютных группах Facebook, VK и Twitter. Вступайте, чтобы следить за новостями!

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

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

Just a reminder, the round starts in 4 hours.

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

The website is down for me at the moment

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

Can't even run example on the website and then got stucked :(

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

Its up again.

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

How to solve D using Binary Search? I couldn't find a way to check if a particular difference is valid or not?

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

    The way my official solution works is the following:

    Binary search the level of the water you want to reach. Let's call it L. For each bottle, if L is in interval [min, max], the level is L. If L > mx, the level is mx, else it is mn. This way you can compute the how much water do you need for a set L. If you increase L, the water will increase, but probably not by how much you want it to increase.

    After you found a valid water level, fill the bottles using the above rules and compute the mx — mn water level for each bottle. Watch out for the case where for a level, you still have some water left. You need to redistribute it. This is not a real concern in most of the testcases, but watch out for this one.

    2 11
    1 20
    1 20
    

    The answer should be 1 The way is to put the water [5, 6]. You can't put [5.5, 5.5].

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

    My solution used 2 binary searches. The first binary search found Max_level where Max_level is the least number such that if all water levels are bounded above by Max_level, the total sum of water levels is greater or equal to L.

    The second binary search found Min_level where Min_level is the greatest number such that if all water levels are bounded below by Min_level, the total sum of water levels is less than or equal to L.

    The final answer is Max_level-Min_level

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

      Can you put some more light on these conditions :

      • if all water levels are bounded above by Max_level, the total sum of water levels is greater or equal to L

      • if all water levels are bounded below by Min_level, the total sum of water levels is less than or equal to L.

      I am unable to understand these two conditions :(

      Thanks!!

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

        The first condition says that I am allowing at the maximum, Max_level liters of Water in any bottle. Basically I am filling bottle number 'i' with water level = min(maximum[i],Max_level). Then I check if this distribution of water levels makes the total sum of water levels >= L. If it does,then I can always remove few liters of water from some bottles to get the final sum to be L. Since I pick the least such number as Max_level, I guarantee that the chosen value of Max_level is definitely the maximum attained value in the optimum distribution. (Because if it were not, I could have reduced Max_level even further).

        The argument for the second condition is exactly symmetric to this and finds the minimum attained value in the optimum distribution.

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

Can someone explain the problem statement for the last problem.Unable to understand what the problem is asking.

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

UPD: Got it. I had to enter the new bottles to fill set after(and not before) checking for the current bottles in fillset.
Hello,
I have doubt in Water Bottles problem.
I have implemented the solution in Archive section.
The same solution can be seen on CSA site with Job ID: 212983 Click
I have received WA on TC 7, 12.
I do not know what's wrong in my code. Can someone help?
I also do not know how to provide a link for your submission on CS Academy. If anyone knows that too, please tell.