Здравствуйте!
Пришла пора второго раунда нашего соревнования VK Cup 2012. Напоминаем, что регистрация на этот раунд также необходима и завершается она за пять минут до начала.
Над задачами работал разнообразный коллектив авторов как со стороны ВКонтакте, так со стороны Codeforces и Саратовского государственного университета.
Мы постарались сделать всё, чтобы процесс оказался интересным, а в следующий раунд прошли сильнейшие.
Раунд пройдёт по правилам Codeforces: с распределением на комнаты, со взломами и с обычным падением стоимости задач со временем. Раунд будет рейтинговым как если вы участвуете в чемпионате, так и если вы пишете вне него.
Из всех участников первые 175 пройдут в третий раунд сразу же. Ещё 25 участников смогут выйти в третий раунд через второй Wildcard-раунд, который состоится 28 марта и представляет из себя одну задачу с неточным решением.
Пожалуйста, чтобы раунд для вас был еще интереснее, прочитайте условия ВСЕХ задач.
Успехов!
UPD1: Опубликован разбор задач: http://codeforces.net/blog/entry/4187
Разбалловка по задачам?..
No english version?
Fixed :)
U NO SPEAK ENGLISH?! :D:D
"...предст**О**вляет из себя одну задачу с неточным решением."
где это? :-D P.S. Fixed.
ахаха Увы, вы не правы :)
я процитировал как было, а не как правильно :)
..предстАвляет из себя одну задачу..
В запуске ограничение по времени между посылками очень мешает! Не дома, компилятора нет под рукой :(
Суровая ситуация... Компилировать, кстати, можно и на стороннем online-judge. Например, acm.timus.ru
спасибо за ссылку. Просто я уже так принимал участие в соревновании, но в прошлый раз этого ограничения не было.
оно было всегда...
ideone.com? Только главное галочку "частный" не забыть поставить, дабы код не палился ;)
RAGE.
Как решать A?
dp[pos][end] — количество подпоследовательностей t, оканчивающихся не правее pos, у которых последний символ — это s[end]
Запомним для каждого места первой строки сколько подстрок, соответствующих ответу здесь заканчивается. Далее для каждого символа второй строки переберм все символы первой. и если совпадает, то
d[i][j] — сколько есть подпоследовательностей/подстрок, которые в S заканчиваются на i-м символе, а в T — на j-м. Пересчет:
Чтобы делать быстро, насчитываем суммы на префиксах. Почему переход именно такой? Мы пытаемся добавить по символу к каждой из подстрок меньшей длины и добавляем в ответ строку из одного символа.
Сам придумал ближе к концу контеста, в связи с чем мне очень стыдно.
Мне только кажется или в E действительно слабые претесты? :)
Почему "подстрока и подпослеовательность" С на 8-ом претесте падает?
Не забыли по модулю взять?
Везде взял, кроме вывода!)) Спасибо)
возможно, потому что решение неверно ?
Надеюсь я не зря в Е писал персистентный Ахо-Корасик с разделяй и властвуй на запросах?
Суфф. ссылки у Ахо-Корасика вроде дерево образуют и тогда можно ее решать как тривиальный боян... вроде бы..
Сложновато вышло оО
Сегодня обнаружил забавный спецэффект. Послал я задачу D, получил 2230 мс. Затем посмотрел на список сдавших эту задачу и на их времена работы, подумал, что 2230 не хватит, что в претестах не должно быть макс тестов. Затем пооптимайзил и получилось 380 мс. Собственно что вы думаете по поводу использования информации о том, сколько работали программы других участников?
Ну эта информация в открытом доступе. Почему нет?) Я, иногда смотрю на чем задачу сдают мои товарищи, потому что если на Java, то в ней нужны BigInteger'ы)
Думаю, если бы вы всем не рассказали, то у вас было бы меньше конкурентов:))
А если серьезно, по-моему вполне нормальное использование лежащей на видном месте информации
Я как раз сегодня тоже обнаружил это. Нашел в статусе, сколько памяти занимала E у tourist, убедился, что карась с несжатыми ссылками.
Жалко за челлендж задачи B взялся поздно... Оказывается много кто не обратил внимание, что при большой скорости время которое требутеся для достижения нужной высоты может быть сравнимо с eps который они используют. (3х успел, на 4ом челлендже закончился контест).
UPD: да я оказывается просто нереально много челленджей упустил, ещё человек 16 можно было на этом тесте сломать).
мне видимо повезвло, но у меня прошло без eps
А по-моему тут без eps нормально. У меня тоже без него прошло.
Superfast systests, thumbs up :)
Yeah, thanks for the speedy tests!
Ололо, 177. Читеров отлавливать будем ^_^ ?
Да, давайте начнём их искать... я 179...
Поднажмите, парни... Я 181 =(
Ну вот смотрите. anmtcel — был до контеста фиолетовым. Чем не читер? Я посмотрел — идеи решений у него ну совсем как у туриста. Списывание налицо. А язык специально другой — для отведения подозрений.
Ага, а D вообще один-в-один :D
Исключение подтверждает правило!
Или просто отменим вайлд-кард раунд:)
Как правильно C решать? Я для каждой конфеты находил 1 или 2 временных интервала когда ее можно взять и запускал потом сканлайн. Но упало на 12-ом тесте. Из-за точности?
У меня такое же решение. Прошло.
у меня на 37 это упало...
Надо было использовать long. Просто все умножить на (v1+v2)
Переписал во время контеста решение на long long с double, после контеста заслал ради интереса решение с double — зашло.
Я использовал для сравнения точек long long, только при счете вероятности для подсчета длин отрезков использовал double. Жалко, в одном месте написал границу массива 4*n вместо 2*n, и рантайм эррор 17)
пичаль, 146 — вне конкурса, жаль слитый первый тур...
The contest is over but I still can't view other's code...why ? Need I just wait ?
yes, now system is in safe mode
edit: posted in the corresponding thread my apologies the titles look extremely similar :)
Somebody could explain me how this solution pass under the 2 seconds time limit, me and another five people got unsuccessful hacks in my room (my guess is because of the codeforces server speed): http://www.codeforces.com/contest/169/submission/1412269
How can I avoid this kind of situation in the future? Thanks
This isn't even a problem from this contest :/
from div2.
for 10^9 iterations only 10 ms. Looks like compiler is optimizing the loop into a single statement. Modern days compiler are so smart.
Как же я ненавижу эти задачи с double'ами. Цена невыхода в следующий раунд — количество итераций бипоиска 64, вместо 128. Как результат — болт, а не футболка и прощай VK Cup.
Эм, так wildcard же будет. Или всё, что не по правилам acm или codeforces, вы не решаете? :)
Я не очень-то удался в задачах марафонских, мои шансы там я бы оценил как... 1 к 100000. Тут было всяко попроще попасть в топ175. Тем более, что я был в одном символе от этого.
Вообще, задачи с точностью 1e-9 у меня тоже вызывают внутренний протест ))
Я в очередной раз повторил свой тупой подвиг и ошибся в решении ровно в одном символе (100 -> 200 итераций), так что да стремненько (хорошо хоть прошел)
у меня со 100 прошло
У тебя rg=1e9 я затупил и поставил rg=1e18
I can't decide the complexity of my code: ---> here Is it O(n^2) or O(n^3) ?
O(n^3): You have O(n^2) states and O(n) moves from each state.
Also, you can try launch your solution with n = 1000 and n = 2000 and measure running time. Is t2 / t1 = 8 -> O(n^3)
t2 / t1 = 4 -> O(n^2)
Nice technique. Thanks.
It's O(n^3).
так и задумывалось, что в див2 С = 1500, а Д = 2000, а в див1 А = B = 1000?
Вполне нормально, ИМХО.
Больше 1000 они не стоили. а в 2 раза различать — ну как-то нехорошо.
ну просто для первого дива задачи оцениваются одинаково, а второй див чем хуже?
Почему проходит это решение. В задаче ограничения на A до 2000 а массив на 1000.
ВОТ, я даже вопрос отсылал жюри, они сказали без комментариев. Я такие решения успешно хакал таким тестом: 2000 1 1999 1..много единиц..1 1000000000 Я так 3 штуки взломал, странно, что после системного тестирование такие решения проходят!
Блин, теперь буду хорошо знать, в боре на одну вершину больше, чем сумма длин слов :) В дорешке добавил 10 — прошло
Тестирование Div2 зависло(
У меня вообще мое решение не проверили :)
when to update the rating?
In the Div.2 problem B, this is a very ambiguous statement : "You are allowed to use not all elements from s." I thought we could never use all the elements of s and this caused my solution to fail.
Hm... You could never use all elements. In 2nd test from statement we never uses element.
Output: 987 ~~~~~
For example: Input: 1111 9999 The answer is 9999 and in this case we use all the elements of s. In my code initially, I was getting the answer 9991 without using all elements of s.
I think the difference between "allowed to use not all" and "not allowed to use all" is pretty clear.
This is not ambiguous at all.
Where can I fill my address if I get a T-shirt?
There are many coders failed in problem B Div1 because they didn't make enough iterations in the binary search.
But I made too many iterations and got TL :)
Then, you should binary search for the correct value. :)
Edit: I think you should ternary search. :)
Yes, I made 50 while 80 was enough. There should be an option to change 1 byte of the solution after the contest ;)
W8ing 4 d editorial
tourist is going to be the first target at Codeforces!
2 floating-point problem, not so nice. I failed problem C because I didn't set precision for cout. Beside that, the problems are nice.
Интересно, за сколько до начала вайлд-карда будет объявлен его регламент.
Может некоторым подготовиться надо:)
И когда по мск выложат задачу.
Can someone explain to me what the checker output means?
It's rational number.
ja = Jury answer, pa = Participant answer
Thanks for the reply. But isn't my answer the same with the jury answer?
Close, but no :)
999990001%99999 = 1 999990001/99999 = 10000
I'm not sure I'm following you. I've just computed this with my calculator:
99999/999990001 = 0.0001 1/10000 = 0.0001
Your calculator is not accurate enough.
Try compare 999990001/99999 and 10000/1 (if a=b then 1/a=1/b)
999990001 * 0.0001 = 99999.0001 != 99999. So, 99999/999990001 != 0.0001
ja = jury's answer, pa = participant's answer
Во время контеста я хотел взломать ети два решения по задаче 169A - Домашние дела (Div. 2) :
observer — 1410298
kenv07 — 1409923
на тесте:
1 1 2
1 1000000000
помоему ети решения не укладываются за 2 секунды для данного теста, но они прошли все тесты, непонятно как! Кто нибудь может объяснить, почему эти решения правильные?
Ну 10^9 быстрых операций, не лезущих рандомно в память проходят иногда.
возможно оптимизации компилятора
Could someone tell me why 1417148 got WA on test 7 but 1417142 got Accepted? The only difference is in the function "verify", 1417142 which got Accepted HAD a line
fprintf(stderr,"I love Mike Mirzayanov.");
,and WA one didn't. Really fun :)maybe yet another g++ bug?
UPD: Works in MSVC++.
Isn't it obvious from what you are printing :) ?
because judge system loves Mike Mirzayanov too)
This happens because of a precision problem. GCC actually compares 80 bit doubles instead of 64 bit, so if you don't add an epsilon they don't compare to equal. The reason why it works with printf is a little more complicated and has to do with the cache being cleared up when you call the function.
More info here: http://apps.topcoder.com/forums/?module=Thread&threadID=440256&mc=26
EDIT: look at this 1417682
После лучшего за всю мою олимпиадную карьеру командного выступления (мы с Jokser'ом заняли 25 место на опенкапе) вылетел в див2. Печально...
Да и opencup незачётный.
И это тоже...
Any Tutorials (In English)?? and how do we come to know in whose blog tutorial is posted after each contest??
http://codeforces.net/blog/entry/4187?locale=en
For [http://codeforces.net/contest/169/problem/B](Problem B) , "You are allowed to use not all elements from s." ,it simply implies that we are not allowed to use all elements from s.But the my solution that is accepted ,uses the fact that all elements can be used.I could not pass the pretests due to this ambiguity.Can anybody explain?????
There is a difference between phrases:
"You are allowed to use not all elements from S"
and
"You are not allowed to use all elements from S"
If you are allowed to do something, it does not mean that you are not allowed to do the opposite.
So if this was actually allowed, then what did the sentence actually want to convey(what was the use of adding that sentence) ,simply nothing... ,I hope this is not a Grammar competition
It's actually a reminding sentence. Problem-setter doesn't want to repeat answering clarification like "am I allow to ..." (yes, you do — in problem statement). Also, it may be a misleading corner case so problem-setter stresses on it.
Edit: it's not a grammer competition, of course. You will see this kind of sentence often, and in most cases, the purpose of problem-setter is good (i.e. try to make thing clearer, not try to be evil and cheat you :P)
I agree with you,but I lost a hell lot of rating due to this.. :(
And strangely enough, there is no difference between:
“It is not compulsory to use all elements from S”
and
“You are allowed to use *not* all elements from S”
still I guess a better statement could have been used.
I also made the same mistake and when I tried to convey the ambiguity above, I got a lot of negatives for my comment. I think the statement was very complex to understand in the contest environment and could be explained in a better way or with a simple test case.
Did you consider clarification from author during contest ? They are always there. Click on Ask, on Problems page.
Вот такой вопрос: не должны ли участники, которые открывают хотя бы одну задачу, тоже участвовать в изменениях рейтинга (так на TC, например)? Мне кажется, это было бы честнее по отношению к тем, кто выбирает писать контест, даже если дела не очень хорошо идут. И изменения в рейтинге из-за этого, по-моему, не полностью оправданы.
Мы не на ТопКодере.
Хотите рейтинг повыше, или как? :)
Тот, кто выбирает "сабмитим", знает, на что он идет.
Хотим, и сегодня даже получил :) Но разве не неприятно, что из-за тех людей, которые даже не пытались ничего делать, кто-то падает, скажем, во вторую дивизию? Возьмём ещё такой пример: участник действительно решал, но вот не получилось ничего послать. А рейтинг взял и не изменился. Конечно же, этому участнику обиднее не будет, но он же действительно участвовал.
Если он принципиально хотел получить изменение рейтинга, надо было отослать что-то, что проходит хотя бы первый претест.
Если бы вся соль была в "таком примере", то разговор шел бы о введении кнопочки "да, я ничего не сдал, но я участвовал", а не о том, что открывший задачу получает рейтинговость.
Кстати, если такое будут вводить, тогда надо будет, наверное, много переделывать. Мы ведь не на ТопКодере:) Там все просто, во время матча доступ только с арены... Иначе задачу достать не получится.
А тут начнется... Гостевой доступ... На крайняк какой-то кеш гугла... Да и любой желающий может нарушить правила, заведя второй профиль, чтобы читать задачи, даже если их закроют для всех, кто не зарегистрирован на матч. Оно нам надо? :)
кстати, я тут подумал, что никто же не мешает на топкодере создать левый акк и с него читать задачи div-2
очень часто 500-ка div-2 совпадает с 250-кой div-1, а сдачи одной 250-ки на 240-245 (чтобы не палиться) часто бывает достаточно чтобы попасть в топ-150, а то и топ-100
Некоторые люди так и делают. И некоторые даже успешно баны ловят, когда при синем рейтинге открывают задачу на 30ой минуте контеста, и попадают в топ-10 по этой задаче). Если ip разные, то может быть бан (код совпал... если не хватило ума и заслал задачу во втором), а так ведь ip проверяют, так что при однаковых — бан гарантирован.
Однако вспоминается история http://codeforces.net/blog/entry/1067 , бывает же точно наоборот)
по теме: было бы желание, а способ найдётся
если бы администрация действительно была заинтересована в контроле участников, читающих условия, то нашлись бы и средства, и методы
Полностью согласен. Знаю некоторых людей, которые любят вообще не делать сабмитов, если задачи не понравились. Ведь вроде и участвовали, и ничего не решили, а в пересчете рейтинга не учатсвуют. Имен называть не буду — боюсь получить по своей плюшевой голове плюшевой лапой.
It took me much time to find out that the c++ compiler on the grading server does not support %Lf (to output long double). Maybe there could be added a warning if you submit code containing %Lf (as with %lld).
Any tutorials coming?
Especially for you. http://codeforces.net/blog/entry/4187
When will the T-shirts be sent? =D
The announcement section says, "All Round 3 contestants will receive VK Cup T-Shirts". So I think you should participate ( or at least register (?) ) in round 3 to receive T-shirts. Admins, please confirm !
хмм, а почему wildcard-раунд не видно в списке предстоящих соревнований?
I found that I forgot to register,when submit