Привет, 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. Вступайте, чтобы следить за новостями!
Just a reminder, the round starts in 4 hours.
round is showing as already finished on clist.by.
The website is down for me at the moment
the same
Can't even run example on the website and then got stucked :(
Its up again.
How to solve D using Binary Search? I couldn't find a way to check if a particular difference is valid or not?
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.
The answer should be 1 The way is to put the water [5, 6]. You can't put [5.5, 5.5].
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
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!!
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.
Can someone explain the problem statement for the last problem.Unable to understand what the problem is asking.
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.