Всем привет!
Скоро начнется Codeforces Round #170, и его автором буду я. Надеюсь, многие будут рады решить все задачи.
UPD: Разбалловка задач динамическая, задачи расположены в порядке возрастания предполагаемой сложности.
И стандартная часть: спасибо Gerald за помощь в подготовке задач, Seyaua и sdya за тестирование, Delinur за переводы, MikeMirzayanov за создание платформы Codeforces.
Удачи!
UPD: Разбор
i wish you good luck and have fun ;) =d>
It's also 11.30 here. I'm doing my internship, hope I will not get fired for sleeping at work -.-
http://codeforces.net/blog/entry/6777#comment-123735 are you the same guy ?
it may be one of the way to get positive votes.
Wow, so I'm not the only one? :')
Let's do our best, then.
I hope it will be a good contest! I just have a question, why do Seyaua and sdya have different name, but their image are same??? (i know their family name are same! maybe they are brother!)
They are twins
really fantastic for me!! thanks a lot!!
yes we are twins...
Y U NO stop acting like a potato?
Why did you add potato?
http://lmgtfy.com/?q=potatohead
How can I get positive votes in blogs? Please, help me!!!
Always if you say 'LIKE ME' people will Dislike, because everyone want to harm))
Сидим с друзьями на лекции по машинному обучению в ЗКШ при МФТИ, и как плохие парни будем писать раунд. Страшно.
Привыкай:D
Мы будем писать на лекции по играм. Надеюсь, на контесте задач на них не будет.
Пророчески, однако...
Score distribution is still unavailable :(
4 problems with Score 3k :v Nice contest!
Что за приколы?
Чудесно. Одна халявная задача и четыре гроба. Какой отличный подарок "фиолетовым". Хочу обратно в Div2... =(
"Чем больше задач я решил, тем лучше проблемсет". Гениальная логика, что уж тут сказать.
Upd. Хотя я в целом согласен, что проблемсет далеко не идеальный, но у Вашего недовольства ведь немного другие причины)
>проблемсет далеко не идеальный
"Петров, разве ты не видишь, что твоему товарищу за шиворот падают капли расплавленного олова?"
Всё же, согласитесь, ненормально, что из 634 участников div1 только 161 сдал больше одной задачи (которую, в свою очередь, большинство сдало в течение первых 30 минут)? Я уж не говорю о div2, где за D и E мало кто и брался.
Такая вот причина недовольства.
Нормальный был контест, хватит ныть.
Нормальный в качестве последнего онлайн-раунда какого-нибудь крупного соревнования вроде VK Cup :).
Я с вами не согласен задачи в Div1 задачи B и С вполне решаемые: загляните в коды решивших эти задачи. Не решил их из — за того, что в А (div 1) C(div 2) набажил, долго исправлял ошибку, и долго передебаговал даже после АС.
Сижу опять и чешу затылок, почему моё решение задачи С из второго дивизиона опять не принимается...
И чего там за претест 4...
будет не хорошо если я скажу тест, но все же посоветую перечитать условие! очень поможет =))
Как обычно, сам дурак...
Кстати это ведь небольшая подсказка для задачи B div.1, что люди сдают ее в основном с использованием ~0 памяти.
what is wrong with testcase 4 of 2C ???
Perhaps a scenario in which nobody speaks any language?
The result is 5 :)
[sorry ! I just wrote it when no answer was available].
all the vertices have degree 0 so everyone should learn a language !!
maybe like this one
this should be 2 not one
All of the employees know nothing.
Пора завязывать долбить задачу до конца =( Как решать С?
Казалось бы игра — обычный ним. Разрезы в разных строках и столбцах независимы. Состояние — количество не разрезанных отрезков длины 1.
Это понятно. Как быстро определить выигрышный ход?
Перебираем, в какой игре он будет сделан. Зная функцию Гранди от всех игр и от данной, xor'ом можно понять, какой она должна быть, чтобы сумма игр обнулилась. Если строго меньше текущего значения — можно уменьшить, вырезав сколько надо отрезков.
Спасибо.
Казалось бы перебрать в каком ниме сходить. Интересные нимы либо там где уже были ходы, либо 1 неюзанная/строка столбец. Итого не более k + 2. Суммарно по отрезкам пройтись тоже o(k)
Выигрышный ход должен делать xor равным 0. Пусть в начальном состоянии получили XOR-сумму S. Можно перебрать все неравные неразрезанные отрезки (их O(K)), найти такой, где ДлинаОтрезка XOR S< ДлинаОтрезка, и отрезать от найденного разреза нужный кусок, чтобы стало 0.
найти полосу в которой его можно сделать это называется где g — общая гранди = количество неразрезанных, а t — гранди этой строки/столбца.
После этого в ней отрезать от 0, до k-ой не разрезанной.
Блин, а я откуда-то взял, что два разреза нельзя пересекать =(
вчера никак не мог вспомнить как ним назывался. хотя это не совсем обычный ним. в обычном количество кучек не увеличивается.
блин, только сейчас понял что можно резать уже разрезанные участки. оказывается классический ним.
last 15mins I have problems with connection to codeforces.
is this only with me or with all?
had no problems
Very FAST system testing @ Div 2!
Что-то я не понял, как мое решение по Б 3215978 прошло систесты o_O
Много ли людей, уловивших правильную идею по В, но неправильно разобравших случай с M == 3?
Хм, в моем решении помимо -1 (5 3, 6 3) так же особенным был случай 8 4 (а ответ был найден перебором)
А что за конструкция? У меня две центрально симметричных параболы, все покрывают вроде.
Внешний правильный многоугольник радиусом 1е8 из m вершин и внутренний радиусом 1е4 из n — m (при этом внутренний повернут на случайный угол)
У меня так не получилось :( 3213530 Но это из за того что не проверял test 5 3.
при n = 5, m = 3 построить невозможно.
Нужно исправть проверку на -1 3220132
Так же сдал. Понятно, почему правильно. Только может так получится, что три точки окажутся на одной прямой, вы это как-то отдельно контролировали? Или вероятность такого слишком мала, чтобы обращать на это внимание?
Вот здесь есть ответ на тест 8 4 (на картинке справа), а также написано про ответ -1 для 5 3.
Facepalm. Сегодня утром читал эту статью и сказал сокоманднику: "Забавная задача". ))) Double facepalm. Во время всего CF раунда у меня в голове крутились забавные фамилии Эрдёш — Секереш, которые я утром прочитал в вики.
Если бы 4 тест в C div2 не включили в претесты, то на взломах по этой задаче можно было бы получить больше, чем по самой задаче)
Пол контеста убил на Бdiv2, так ничего и не вышло. С на мой взгляд была проще. Как решается Б?
нетрудно доказать что длина ответа не превосходит 3-ех символов. перебираем все слова длины 1, 2 и 3 и проверяем влоб.
даже 2х символов хватает 26*26 > 30*20
опередил)
даже двух символов вполне хватает)
I've challenged this solution twice during contest time but it returned correct answer
Submission: 3209935
But it failed on similar test case! admins please clarify?
Here is one of my test case:
100 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100 1 100
HEY you scrolled your browser only to give him negative votes! :P
HAHA it's more interesting that ppl didn't get lazy votedowning XDXD
now I read problem B can someone explayn why length of answer<=2???
Because not all combinations of 1 or 2 letters can appear at the same time.
Actually It's <=3
No, it's not.
Ah, I thought the length of string is <50! What an epic fail!
in 30 names with length 20 maximum number of consecutive pair elements is 30*19 and number of strings with length 2 is 26^2 30*19<26^2 so length 2 Is enough :)
not good contest! :|
Hard problems but very interesting!
but in this contest the speed of coding was too important to be helpful for coders!
for me, I enjoyed solving div1 B.
anyway I think speed of coding is important part of a good programmer.
Спасибо за контест! Отличные задачи — показывают умение думать, а не кодить стандартные вещи.
Серьезно? Я ЧАС кодил С, которую придумал за 3-4 минуты.
Ну, задачи C и E под это совершенно не попадают, как мне кажется. Функция Гранди, где еще зачем-то просят восстановить ответ (хотя, да, это делает задачу сложнее) и стандартный минкост.
А вот ABD понравились.
Ну ок, значит я глупый, раз для меня эти задачи были неочевидны.
Про минкост в E даже не подумал, хотя буквально в эту субботу была похожая задача — Hard на TCO R1.
Раз уж зашла речь про минкост, хотел бы задать такой вопрос. Для max flow понятно, что есть Эдмондс-Карп (O(NM2)) и Диниц (O(N2M)) — на e-maxx эти алгоритмы хорошо описаны и обоснованы. С минкостом дело обстоит, на мой взгляд, хуже. На e-maxx написан алгоритм такими словами "похож на Эдмондса-Карпа" — и больше ничего, дальше только технические детали. Ну и асимптотика O(N3M). Но, казалось бы, если Дейкстра, то асимптотика может быть и O(Nlog(N)M2) (на разреженных графах это лучше), а может быть O(N2M2 (Форд-Беллман), но это ладно. Что меня интересует, так это доказательство алгоритма (почему мы можем просто взять и заменить bfs на поиск кратчайшего пути и сразу все заработает?) и существуют ли алгоритмы с лучшей асимптотикой? Можем ли мы переделать Диница под min cost или проталкивание предпотока (хотя этот алгоритм я не знаю)?
Если кратко переформулировать, пишет ли кто-нибудь на олимпиадах что-то лучше "напишем Эдмондса-Карпа + Дейкстра с потенциалами" и назовем это min cost или нет?
Я бы оценил асимптотику как (последнее слагаемое убивается, если изначально нет отрицательных стоимостей), где F — величина потока. В этой задаче это давало %O(400^3)%.
Доказывается примерно так: построим какой-то поток. Если в остаточной сети нет циклов отрицательной стоимости, то он минимален (от противного: посмотрим на отличия и найдём цикл, вроде так). После чего индукцией по количеству итераций доказывается, что если каждый раз пускать поток по пути минимального веса, то циклов не возникнет.
Другого алгоритма, применимого в олимпиадах, нету?
Есть алгоритмы основаные на отмене циклов отрицательного веса. Например цикла с минимальным средним весом. Я его точно на олипиадах несколько раз писал. Так же есть cost-scaling, capacity-scaling их я уже не писал.. А есть книжка Ahuja про потоки там всё написанно.
Довольно быстро гуглится вот эта платная статья про минкост через проталкивание предпотока. Если нужна — напишите в личку (не хочу палить контору насчет того, как я ее слил).
Особенно С )) Нет, на самом деле согласен
Спасибо RAD за интересные задачи!
Как решать B и E?
А как, интересно, писался чекер к задаче B?
Можно написать динамику за куб, которая найдет выпуклость множества. Ну или ее же за 4ю степень, чтобы сильно не париться.
А как за куб, в двух словах? Я помню, что что-то похожее было на заочке.
На заочке получалось убрать степень за счет того, что можно было перебрать больше, чем выпуклые. А тут вроде так не получается.
Переберем левую нижнюю точку многоугольника. После этого сделаем динамику f(i, j) — максимальный размер выпуклого многоугольника, у которого последние 2 вершины в обходе против часовой стрелки — это i и j. Тогда чтобы сделать переход, нам надо перебрать такую точку k, чтобы поворот между i, j и k был против часовой стрелки, а также поворот между j, k и левой нижней точкой был тоже против часовой стрелки. Это работает за четвертую степень.
Теперь отсортируем все точки по полярному углу вокруг каждой точки (т.е. заведем по массиву для каждой точки). Будем делать динамику назад, т.е. из состояний (k, j) сделаем переход в (j, i) для всех подходящих k. Для этого заметим, что нужные нам k будут лежать подряд в циклическом списке точек, отсортированных по полярному углу вокруг j. Мало того, если для фиксированного j перебирать i в порядке сортировки по углу, то можно двигать 2 указателя на подходящие индексы для k. Ну а дальше просто искать максимум на отрезке за О(1).
Было бы прикольно, если сегодняшняя B была сделать то, что ты написал))
Как раз такая уже есть: 100162J - Задача туриста
The contest was very hard but the system testing was too fast!
Lost 2nd position because of 10 (instead of 1000000). :( It is REALLY disappointing. I was too nervous I think. T_T
That was really fast system testing!
Short editorial for problems I know how to solve (sorry for possible errors):
DIV1-A. Connect persons with common language, then output is max(0, #connected components — 1) + #persons without any language knowledge
DIV1-B. [extracted from rng_58 source code] For case m = 3, n >= 5 there's no solution. m = 3, n = 3/4 one can construct big triangle and a point near one of the points of the triangle. For other cases (m > 3) one can construct (as rng_58 did I think) "function X^2" for one convex polygon (points (i, i * i + LARGE_DELTA)), and "function -X^2" for the rest of the points (poiints (i, -i * i — LARGE_DELTA).
DIV1-C. It can be considered as nim game. For every row/column with coordinates [1 .. maxCoordinate — 1] count the number of "free" unit segments ("free" = not covered by any move played). Let that number be countRow_r for row r, or countCol_c for column c. Then nim sum would be NIM_SUM = (XOR_SUM countRow_r) XOR (XOR_SUM countCol_c). So by the theory of nim game first player wins if NIM_SUM != 0, otherwise second wins. Then we have to find a move which makes NIM_SUM equal to zero, and by the theory of nim games that move exists.
DIV1-E. Construct graph with two nodes u_in, u_out per one node u originally given in the input. Attach the "source" to u_in with capacity 2 and cost 0, attach u_out to the "target" with capacity 1 and cost 0. Then attach u_in to v_out with capacity 1 and cost DISTANCE(u, v) when v can be a child of u (ie. v.y < u.y). Then run min-cost-max-flow and if the flow is n — 1 you can construct the graph and output it minimum cost, otherwise no solution exists.
"number of free segments >= NIM_SUM. It can be proved that such row/column exists."
Not necessarily. You only have to find one such that ("Y" xor NIM_SUM) <= "Y". The other condition would work for some cases but it's not guaranteed to always hold, unlike this one.
http://en.wikipedia.org/wiki/Nim
Thanks, that was my error. I corrected it.
supplement .. .
DIV1-D is a knapsack problem, actually is a dependency 0-1 knapsack problem, But the dependence is very weak. So we prefer to use a grouping 0-1 knapsack problem model to solve this. The expect score is trivial, so let us focus on the penalty. You can found the penalty system in the problem is a little bit different against the reality, that is once we start solving on those large point, we'll never back to solve a small point. This declare is obviosly true.
Then, for two large point u, v, let us denoted by (t, f) for time and fail probability.
Simplificate on the formula, Then we could found a large point u is in front of v, iff
Once the principal contradiction is grasped, all problems will be readily solved.
As we want to minimize the penalty, it'll be a wise idea that we use the second dimension of the dp array, record the maximum expected save of the penalty.
My solution is correct!!!!!! :@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ this failed on system test: http://codeforces.net/contest/278/submission/3214079 and then just added this lines for debug and when i submitted Accepted :/ http://codeforces.net/contest/278/submission/3219530
difference is only :
why it has different answer?
Seyaua
Gerald
You have undefiined behavior in line
add(s,root[toindex].c[s[strindex]],++strindex);
arguments can be calculated in any order. For example it can beProbably this one happened. It can depend on compiler and OS.
Also the same compiler on the same OS can reorder the parameters if it finds that to its advantage.
typedef struct node{ int c[255]; node() { for(int i = 0; i < 255; i++) c[i] = 0; } } node;
nooo i initialize all the nodes, none of them mustn't be undefined..... strindex is always less then s.size(); every s[i] is less then 255, c[255];
and it means that if(root[toindex].c[s[strindex]] == 0) is false
and
int ind = root[toindex].c[s[strindex]];
if(ind == 0) that's true :/
add(s,root[toindex].c[s[strindex]],++strindex);
may be done as++strindex,add(s,root[toindex].c[s[strindex]],strindex);
and may be done asadd(s,root[toindex].c[s[strindex]],strindex),++strindex,;
One of them is correct, and one not.
fucking compilers :@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Хороший контест, спасибо автору. Жаль только, не решил С. То есть как, придумал решение за пару минут, потом закодил минут за сорок вывод FIRST/SECOND. А вот восстановление первого хода так и не успел :\
The problem Standard was A , B , C , E , E :D
Screencast
In div-1 1st prob:pretest 4 could have been avoided to increase successful hacking attempts.
Agree with you!!! the more hacks contest have, the more enjoyable it is!
Контест будет рейтинговым ?
А почему бы ему не быть рейтинговым?
When will the rating update ? If there any problem, please update this blog.
А сколько могло бы быть взломов не будь 4 теста в задаче C(Div2) :)
In problem Games, I get WA on test 17. In the test one of the cuts is "2 4 2 3", while the jury's answer is 2 0 2 5. How could it be right?
What's the problem?
If the part 2 3 2 4 was already cut, how can we cut 2 0 2 5? Won't we repeat the edge 2 3 2 4?
As long as you touch some uncut parts, it's fine. (I asked this question during contest time)
Please note that the paper doesn't move during the cuts and you can cut along previus cuts but you have to cut at least one more unit line.
Thanks to both of you :)
I did the same mistake :( I believe this problem should have better definition of cutting even with a figure showing different situations.
Could someone comment on possible strategies for div1-b checker ?
Fit m vertices evenly on a circle with radius R1. Fit the other n — m ones evenly on a circle with radius R2 < R1. This can always be done, except when m = 3 and n > 4, I don't know the reason for this yet though.
You can also create a distribution like this:
http://s16.postimage.org/83zarzh2d/design.png
This will guarantee that you cannot form a polygon whith more than 4 vertices selected from both the first and the second set of points. So, if you have M>3 or if M=3 and N<=4 then the given strategy will provide a good solution.
Thanks for the solution, but I was asking about how the checker would have evaluated the answers. I would like to know what logic did checker apply on the output points so as to verify that maximum convexity is m. (a naive approach of selecting m+1 points and checking will be too time consuming and I am not able to think of a better checker)
My guess about the checker is to run Convex Hull algorithm(O(nlgn)) on your points and see if the output is m or not.
I am sorry I misunderstood your question. My guess for how the checker works for this problem is that it sorts the output points clockwise or anti-clockwise, and then it used a dynamic programming algorithm to find the maximum convexity of the points. If the maximum convexity is equal to M, and there are no 3 points situated on a straight line (which could be verified in N^3 complexity, given that N is no bigger than 200) then the solution is considered correct.
As for the Convex Hull algorithm, I do not believe this algorithm would have found the maximum convexity of a set of points (consider a hexagon inside a square, the convex hull algorithm would say that the maximum convexity is 4, which is not correct) .
You also need to make sure you don't have 3 points at the same line, like here: http://s24.postimage.org/oynvny78l/design2.png I wrote same solution but made this bug during the contest. I took a random distance out of my head between those two simmetric figures, but, as usual, if it is possible to make a bug I will make it:)
My guess about the checker is to run Convex Hull algorithm(O(nlgn)) on your points and see if the output is m or not.
[Edit: sorry I meant to reply to pareshverma91]
First of all, check that no three points lie on the same straight line.
Then iterate over all points, and assume that the i-th point is the leftmost point of largest convex polygon. Sort all the points to the right of i by the angle relative to the i-th point.
Calculate the following DP: z[t][j] = the maximal size of polygon, where the first point is i, the last point is j, and the next to last is t (j is always greater than t by the relative angle). We can connect points i and j to finish the polygon of z[t][j] points. Or we can find the next point k to continue building the polygon. k must be greater than j by relative angle, and triple (t, j, k) must have positive orientation. This solution is O(n4) in total, but actually it's C(n, 4). And you can improve the DP to make it O(n3). Code: http://pastebin.com/Ubf25Qq8
Fast System test is awesome, hopping rating update be as fast as it .... every contest.
In problem div1-C, the sentence "that is the knife has to touch the part of the paper that is not cut before." is ambiguous. One could understand, as in my case, that the knife can only touch the part of the paper that is not cut before. My submitted solution in contest time was written according to this interpretation. Please, try to be clearer the next time.
I find it clear. In your interpretation, it'd be "cannot touch the part that was cut before" — exactly to remove the possibility of this ambiguity. But if you're not sure, you can still ask an official question — they're answered pretty fast.
I also asked the same question during the contest. Maybe it should have been better to make a public clarification since lots of people asked about it.
The same here ; /. In fact it's our fault, but that's not a good thing when many contestans got the description wrong :d.
I made the same mistake too :(
I think for this kind of ambiguous, one of the best solution is to have it in samples to resolve it.
Samples are not used for testing, but are used for better understand the statement and resolve the ambiguous.
The current samples are already very good that resolved the ambiguous of "it is not guaranteed that the cuts were obtained during any correct game".
Hope it can be better next time.
Why my solution in problem C div2 getting "Ошибка исполнения на тесте 10"?I think everything is OK...but i can't understand why it is giving TLE...PLS help...Here is my code:3214342
You don't get TLE (Time Limit Exceeded), but Runtime Error. Download the test, run in your environment, debug.
Edit: Aha, you can't download the test. But repeat the last full line 30 times and you should get runtime error locally. I did with your prog.
thx for help...but my prog giving true result in my computer...but in codeforces it's giving runtime error...but i don't know why?...
This is the problematic line:
int n,i,j,k,l,f,d,c,ans,cnt,s,t[MN],m;
Don't declare all the letters in advance. You used global variable L, where you should have a local L. Probably your compiler optimized the code incorrectly, not expecting that the value of L could change inside the loop. Actually it is changed inside recurent calls to dfs. Incorrect optimization surprisingly gave expected behavior in your environment. I bet you don't use gcc, do you? What's your compiler?
thx a lot for helping...i accepted it...problem was "l" i think...i took it from global and it got accepted...
Спасибо за контест! Отдельное спасибо за sample "7 4" в Div1B, который подсказал правильную идею. Без этого примера был бы твердо убежден, что для "7 4" и "8 4" ответа не существует. P.S.: не думал, что можно так радоваться, сдав задачу за 3 минуты до конца :)
Вы не представляете, как радовались команды Moscow SU 1 и Belarussian SU 1 в последнюю минуту NEERC. Первые сдали D, а вторые — I.
Все-таки они радовались не в последнюю минуту, а уже на награждении.
Will the editorial be public?
in problem div 1 C "You are given an n × m piece of paper" "(0 ≤ xbi, xei ≤ n, 0 ≤ ybi, yei ≤ m)" how can be both correct? if 0<=xbi<=n and 0<=ybi<=m than we are given n+1 x m+1 piece of paper no?
А как бы решалась задача C, если бы условие было такое: То же поле NxM из белых квадратов 1х1, только теперь мы берем отрезок из единичных квадратов и полностью красим их в черный цвет. Отрезок берем такой, чтобы в результате перекраски хотя бы один новый квадрат поменял цвет. А игра заканчивается, когда все квадраты станут черными. Нужно так же вывести первый ход первого игрока, если он выигрывает.
Я не придумал, и мне кажется, что с такими ограничениями она решения не имеет. А у вас есть какие-нибудь мысли по этому поводу? Или это чушь и просто забить?)
Also made a screencast: link
а не писать разбор это теперь стало мэйнстримом?(
Вообще-то еще вчера был: ссылка
спасибо, значит не заметил в комментах( однако хотелось бы его все-таки видеть в UPD в анонсе)
Когда это не писали разбор?
UPD. Имею ввиду сколько разборов не написали, что это стало мейнстримом?
еще 2 предыдущих и раньше тоже бывало... в комментах были, а в анонсе нема..( в позапрошлом на англ версии есть, на русском искать надо...
http://codeforces.net/blog/entry/6779 вот на прошлый контест.
Разбор на позапрошлый раунд как вы сами сказали — "на англ версии есть".
да, неправильно выразился наверно. не "писать разбор", а "выкладывать его на главной", как сейчас и раньше
Разборы примерно в течение недели после контеста держатся в прямом эфире.
Hi,
Is it please possible to have as many rounds in the weekends as possible? For ex, the next div2 round is on monday and i don't see why it was not scheduled on sunday. For people from western europe the 7:30pm from russia is really bad during work days.
Thanks a lot!