Всем привет!
Последний в этом году шанс попасть в отборочный раунд Russian Code Cup предоставляется всем в это воскресенье, 5 июня в 16:00. Приглашаем всех, кто еще не прошел в отборочный раунд, принять участие. Удачи и до встречи на Russian Code Cup 2016!
Сделайте, пожалуйста, внеконкурсное участие. Или перестаньте присылать приглашения на почту тем, кто уже прошел в отборочный раунд.
Do you can check system faster? In the previous round we were waited about two minutes to know the results.
Yes, making judging faster would be highly appreciated.
Curiously, did they fix the bug with problemset presentation? Or when the contest starts, we will see 1st-qualifiication's problems again?
Can someone who is not Russian participate ?? if yes Link to the contest website please .
http://www.russiancodecup.ru/en/
The problems are quite interesting, but mail.ru reinvented the wheel developing their own system, which turned out to be the worst Online Judge ever, so expect huge bugs and slow testing during the contest. If you don't want a t-shirt from them, you'd better just wait for the problems to appear on the CF Gym.
Это, а как задачи то сдавать? Нужно было перед началом соревнования зарегаться чтоль?
Я даже растерялся, пацаны, шутки в голову не лезут.
Вы серьезно, на ACM соревнование отдельная какая-то регистрация обязательная перед контестом?
"Для участия в раунде нужно было зарегистрироваться заранее.
С уважением, Команда Russian Code Cup"
Сами свое говно пишите, что я еще сказать вам могу :D
Я с вашими правилами могу в любое время согласиться.
Ни одного предупреждения про это, ни одной логической причины сделать так, кроме вашей криворукости.
How can I submit solutions ? I am not seeing any submit button option.
Same here
http://mirror.codeforces.com/blog/entry/45097?#comment-296431
:(
:(
Me too. I just created an account. Used log in with facebook option. Can't see submit button !
Дико тормозит сервер.
Is there some problem with the judge?
My code runs fine offline and on ideone, but gets runtime error on test case 1 in problem D. I asked the jury, and they confirmed that Case #1 is indeed sample case..
Как решить первую и вторую задачу?
1 задача:
Посчитаем сколько площадь квадрата может быть уложена в площадь прямоугольника: k = (a * b) / (c * c). Теперь посчитаем 2 наиболее близкие площади: недостаточную k * (c * c), и избыточную (k + 1) * (c * c). Выберем ту, которая дает меньшую абсолютную разницу с a * b. Еще надо проверить, что недостаточная площадь больше 0 (если это не так, то вывести избыточную)
Вторая задача на реализацию.
Просто напишем функцию, которая будет приравнивать строку s1 к строке s2: будем последовательно итерироваться по символам строки, начиная с 0-го заканчивая (n — 2)-ым. Пусть мы рассматириваем символ i: при равенстве s1[i] и s2[i], иначе инвертируем s[i] и s[i + 1] и прибавляем 1 к ответу. В конце проверяем строки на неравество (в этом случае ответ -1, иначе тот, который мы насчитали). Для пущей надежности можно запустить функцию 2 раза, свапнув аргументы и выбрать неотрицательный минимум. Мб это избыточно, но на AC не повлияло
Привести одну сроку к другой нельзя только тогда, когда одна от другой отличается в нечетном количестве символов.
Доказательство: за один ход можно либо починить/испортить два символа (+2 или -2 к разнице между строками), либо испортить один и починить другой (+0 к разнице).
И вправду, спасибо за мысль
Можно просто dp. В параметрах префикс и тип последнего символа.
For D we needed this, right? http://e-maxx.ru/algo/tree_painting Found it 5 minutes before the end :/
lca + segment tree
Tried that. Got RE#16:D
I used sqrt-decomposition: new DFS+LCA every 400 queries.
Sorry if this is a dumb question but how did you check if some deleted edge was part of the path from u-v quickly?
Let vertex W = LCA(U, V) so X (a deleted vertex) is a part of the path U-V if and only if X is an ancestor of U or V, but not W (i.e. X is ancestor of exactly one of the path ends).
Thanks. I didn't think enough about it, this is quite easy to using dfs entry/exit times. Sorry.
I came up same solution but failed in coding this idea. Can you share with your code ?
Sure: code
As mentioned in the editorial, it is not necessary to delete the vertex explicitly — we may just assume that the corresponding edge has length 0. So, we may use a significantly simpler dfs — just calculating heights, without the tree rebuilding.
Code mk.II
Thx for advise. I used dsu for deleting edges:p
You need just this:
a) LCA
b) sum on path.
Both are standard.
I solved it with BIT on tree preorder. BIT holds current dept of the nodes.For update operation i updated corresponding segment of the BIT. And using LCA we can answer the other query.
What's wrong with this solution for D?
Keep a BIT on the DFS order for prefix sums from root to the node. For updates, subtract 1 from those which lie in the subtree of the current node, and to answer query use formula val[a] + val[b] - 2 * val[LCA(a, b)]. Only corner case is that both nodes are children of same node that has already been deleted where answer is 2. I kept getting WA on case 7.
There is no corner case. You just have to subtract 1 from everyone in the deleted node's subtree, including the node itself.
Shit, I was doing exactly that initially, but had some bug so rewrote large part of it, and messed that up and came up with new logic :/
To D I copy-pasted both LCA and HLD summing on paths. But what is funny is that I didn't copy it from my library but from problem E from RCC week ago :P (however I could as well copy-pasted from library, but second round was closer in directory tree than library :P).
Week ago 120 minutes weren't sufficient for me to get a result sufficient for qualification. Today 8 minutes were enough :P.
i think HLD is too hard solution to D You can use euler tour and segment tree with min and range substraction
code: http://pastebin.com/PApcfyiw
As long as I can copy-paste prewritten code I don't care whether it is complicated or not. What I care about is what I need to write specifically for that problem and here it was everything I needed: http://ideone.com/WGc7Uj Not too complicated, right?
Вторая задача в слегка более запутанной формулировке ровно три дня назад была на HackerRank.
The contest in Gym: 2016 Russian Code Cup (RCC 16), 3-й квалификационный раунд.
Тот же код, который на RCC словил RE#16, на Codeforces получил AC... Какие могут быть причины для этого?
На RCC отправлял на MS VC++ 2013
На Codeforces отправлял на MS VC++ 2010
18259339
Запусти под валгриндом, наверное в память чужую лезешь где-то. Сслыка на сабмит не работает, кстати
Надо 8 вместо 6
Была такая мысль, но размер массива в нижнем слое ДО не превышает 199998 <= 2^18 = 262144. Тогда количество вершин во всем дереве не превышает 2^19 = 524288.
Не-а, количество вершин то может и не превышает, но вот размер массива под дерево в худшем случае равен 4*количество вершин в нижнем слое (из-за особенностей из нумерации в массиве ДО
Скорее всего за размер стека вылез.
Может кому-то полезно будет, я прибавлял на отрезке так:
Спасибо всем, ошибка нашлась: действительно был выход за пределы массива, но не массива Tree, а массива edge.
P.S. под валгриндом это не выявилось. Проверял с помощью Memcheck. Эта утилита не выявляет выход за пределы массива?
What's wrong with my solution? I used the same idea with the editorial, but instead of using a segment tree with lazy propagation, I used a trick with BIT that allow me to do range update, single node query (the same trick with this editorial, problem C div 1).
My solution
when will the editorial be out??
If you have not got it...LINK