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

Автор Ripatti, 15 лет назад, По-русски

Привет всем!

Рад приветствовать вас на очередном раунде Codeforces. Надеюсь, что недавняя цветовая революция и несколько более позднее время проведения раунда внесут некоторое разнообразие в процесс решения задач:)

Автором задач сегодняшнего раунда являюсь я. Раунд помогал готовить RAD, на английский язык задачи перевела Delinur.

Всем удачи.

UPD.

Раунд окончен, рейтинги пересчитаны.

Победители div1:

1. Egor

2. tourist

3. unicef

4. sevenkplus

5. ivan.popelyshev


Победители div2:

1. RainbowDash

2. cjtoribio

3. miraliv

4. adrian.jaskolka

5. majia5

Ура!

Разбор задач.

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

15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
расценка задач стандартная?
15 лет назад, скрыть # |
 
Проголосовать: нравится +13 Проголосовать: не нравится
Thanks :) I would like to remind all Div2 coders who are aiming for Div1 today, now violet starts from 1700, not 1650.
 
15 лет назад, скрыть # |
Rev. 4  
Проголосовать: нравится +2 Проголосовать: не нравится

У нас в Казахстане в Атырау контест будет до 00:00 o_o в некоторых других регионах страны будут до 01:00 писать. 

15 лет назад, скрыть # |
 
Проголосовать: нравится -6 Проголосовать: не нравится
I really like your contests, not all, because of long statements. But in my opinion you are professional on creating contests... I am about Ripatti.
15 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится +11 Проголосовать: не нравится

Just a reminder, a contest starting at 1:00am or 2:00am local time is really inconvenient for the people live in East Asia. 

15 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится
Is it possible to unofficially join the round? because I will join a little late so I wouldn't like it to affect my rating but would still like to solve in real time.
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
for Chinese coder..the contest start at 1:00 am local time = =!
what's worse!!
for an Australian...the contest start at 3:00 am local time ><!
15 лет назад, скрыть # |
 
Проголосовать: нравится +48 Проголосовать: не нравится
Когда мы TopCoder решаем в 5 утра - никто не жалуется :)
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Is it normal that Div2 contestants are 4x times more ? 
15 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится +14 Проголосовать: не нравится

О, контест Ripatti, сразу вспоминается задача про химические элементы :)

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

When trying to hack I'm being put on standard bug page

15 лет назад, скрыть # |
 
Проголосовать: нравится +15 Проголосовать: не нравится
Даже не зная, кто автор матча, автора задачи А (и человека, решившего, что это А), угадать несложно.
15 лет назад, скрыть # |
 
Проголосовать: нравится -8 Проголосовать: не нравится
Блииин такие классные и интересные задачи, а я забыл зарегистрироваться =((
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Можете подсказать насчёт отправки задачи.
Я отправил решение по второй, проверил на примерах, всё работало. Но после отправки выдаёт ошибку на претесте 1. Если кто-нибудь знает в чём проблемма подскажите. Такое уже не первый раз.

15 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится +3 Проголосовать: не нравится

я убил себе мозг поиском ошибки в задаче (C div. 2/A div.1)...

уже 9 неверных отправок

не нравится мне 8 претест

15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Первый претест в задаче D (див2) из условия? Если да, у меня почему-то на нем неправильный ответ. Во вкладке запуск все Ок.
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
В задаче D (div. 2) искомые подстроки могут пересекаться?
15 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится +6 Проголосовать: не нравится

C div 2(A div 1) и D div 2(B div 1) imho надо было местами поменять

Да и A с B в div 2 тоже

В целом контест неплохой :)

15 лет назад, скрыть # |
 
Проголосовать: нравится -19 Проголосовать: не нравится
что за раунды пошли: один хуже другого....((
15 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится

Что надо написать в параметрах генератора. Из за этого я не смог взломать ( .

15 лет назад, скрыть # |
 
Проголосовать: нравится +5 Проголосовать: не нравится
Капец.... 20 секунд не хватило чтобы сдать D.
15 лет назад, скрыть # |
 
Проголосовать: нравится +3 Проголосовать: не нравится
Кто как решал C?
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    Там можно идти из двух углов. Если ты встречаешь единицу, ты обязан сходить в нее, потому что все клетки выше и правее (ниже и левее соответственно для другой половины) уже рассмотрены и единиц не содержат.
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
А за ошибки в тестах из условия теперь снимают баллы?
15 лет назад, скрыть # |
 
Проголосовать: нравится +3 Проголосовать: не нравится
Извините, я тут недавно.
Через сколько примерно времени будут результаты системного тестирования?
15 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится
На что похож шестой претест на А? 
15 лет назад, скрыть # |
 
Проголосовать: нравится +11 Проголосовать: не нравится
в конце контеста жестокая битва была между tourist-ом и Egor-ом за первое место :D
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Здравствуйте.

Получил для третьего теста из задания C ответ (109 78). Верный ли он? Предполагаемый ответ (76 54) имеет меньшую суммарную скорость наливания.

Заранее благодарю.

P. S. (109*143 + 78*456) / (109+78) = 273.5561 > t0 = 273
15 лет назад, скрыть # |
 
Проголосовать: нравится +1 Проголосовать: не нравится
Could anyone give me a hint on the theory behind div2 D/div1 B, is it suffix trees? Or some variation on KMP?
15 лет назад, скрыть # |
 
Проголосовать: нравится +3 Проголосовать: не нравится
"The display rows are numbered with integers from 1 to n upside down"

Oh, you meant it literally :)
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

как решалась C(div2)?

15 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится -13 Проголосовать: не нравится

Сдал на последней секунде задачу D (div.2), не знаю правильно или нет... Но условие там сформулировано не очень. Не беря в расчет опечатки ("Суффикс считал, что строки t должна быть"), там написано "Обеликс же посчитал, что t должна ..., то есть не являться ни ее началом, ни ее концом" - если чисто логически/математически подумать, то в таком случае всегда ответ "Just a legend", потому что нельзя удовлетворить всех.

  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +1 Проголосовать: не нравится
    Это еще почему?
    • 15 лет назад, скрыть # ^ |
      Rev. 2  
      Проголосовать: нравится 0 Проголосовать: не нравится

      Потому что t - результатирующая строка, по условию "должна" "не являться ни ее началом, ни ее концом".

      P.S. Конечно из тестов видно, что это не так... но в целом условие получается противоречивое.

      • 15 лет назад, скрыть # ^ |
         
        Проголосовать: нравится +2 Проголосовать: не нравится
        По мнению Обеликса, а не сам ответ, вчитайтесь внимательнее.
        • 15 лет назад, скрыть # ^ |
          Rev. 2  
          Проголосовать: нравится 0 Проголосовать: не нравится

          Из условия: "Астерикс выбрал подстроку t так, чтобы угодить всем своим спутникам", т.е. t должна удовлетворять мнению Обеликса.

          Из того же условия: "Выведите строку t", т.е. t - есть сам ответ.

          • 15 лет назад, скрыть # ^ |
             
            Проголосовать: нравится 0 Проголосовать: не нравится
            Она должна удовлетворять мыслям всех трех героев, но не сказано, что это должна быть одна и та же подстрока, в этом и соль задачи, что надо найти подстроку максимальной длины, которая бы встречалась минимум три раза в исходной строке, а именно стояла в самом начале, в самом конце, а также в середине, то есть не являясь концом и началом строки одновременно.
            • 15 лет назад, скрыть # ^ |
              Rev. 2  
              Проголосовать: нравится 0 Проголосовать: не нравится

              Из условия: "Астерикс выбрал подстроку t так, чтобы угодить всем своим спутникам.", т.е. t - это одна строка, а не несколько.

              P.S. t - это набор символов и не более. ;)

15 лет назад, скрыть # |
 
Проголосовать: нравится +30 Проголосовать: не нравится
C for div2 and A for div1 was very tough! :|
15 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится +2 Проголосовать: не нравится

Жду не дождусь увидеть этот коварный 6 претест в C(div 2) ;D

UPD: P.S Сегодня определенно не мой день, надо было D делать а не бессмысленно париться с C, спасибо за отличный раунд, буду делать выводы.

15 лет назад, скрыть # |
 
Проголосовать: нравится +14 Проголосовать: не нравится
Отличные задачи, спасибо за контест!

Хотя немного обидно, что D есть в OEIS. Кстати, это помогает? Я что-то не пойму.
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    если верить в то, что это никто не использовал, то совсем не обидно...
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    Ну в любом случае там не очень сложная динамика. Мне С показалась сложнее.
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    Та формула, что там есть, у меня вообще не заработала.
    Потом я нагуглил эту статейку, написал изложенную там формулу и в итоге получил TL 24.
    Так что OEIS и Google на этот раз никак не помогал. Наверное, автор был в курсе этого чита, поэтому специально сделал такой формат ответа (10^5 тестов внутри одного), чтобы формула не проходила.
15 лет назад, скрыть # |
Rev. 3  
Проголосовать: нравится 0 Проголосовать: не нравится

Никак не пойму, почему в C (Div2) (3 претест) ответ будет не "114 81"

Т.к. вроде они одинаково приближены к t0:
(143*76+456*54)*(114+81) = 6920940
(143*114+456*81)*(76+54) = 6920940
Исправьте пожалуйста, где я ошибся?

UPD: 114 больше 110 =) Спасибо SkidanovAlex!
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Ну конечно с С я дров наломал( Давно так не парился...
15 лет назад, скрыть # |
 
Проголосовать: нравится +2 Проголосовать: не нравится
Start the system testing :)
15 лет назад, скрыть # |
 
Проголосовать: нравится +18 Проголосовать: не нравится
Really cool problemset. Congrats Ripatti!

Eagerly waiting the editorial. xD
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Is it just me or that Div 1 systests aren't moving?
15 лет назад, скрыть # |
 
Проголосовать: нравится +9 Проголосовать: не нравится
what is "Denial of Judgement" ?
15 лет назад, скрыть # |
 
Проголосовать: нравится +11 Проголосовать: не нравится
Два отказа тестирования это ведь не очень плохо?
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Не знаю баг это или что, но у меня время в статусе показывается то от начала контеста то дата и время. Выглядит крайне странно.
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Нормально ли то, что контест тестится в режиме "эмуляция контеста" - посылки тестируются не подряд, а в моменты посылки?
Вроде такое уже когда-то было.

  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +19 Проголосовать: не нравится
    Так кажется, просто тестируется Div1+Div2, а в Div2 очень много ранних попыток. Сегодня у нас много новевведений, поэтому контестер работает в safe mode: работает не на полную мощность, на следующем раунде будет побыстрее.
    • 14 лет назад, скрыть # ^ |
       
      Проголосовать: нравится +15 Проголосовать: не нравится
      Нельзя ли проводить сначала тестирование div1? Должны же быть у первого дивизиона хоть какие-то привилегии! :)
      • 14 лет назад, скрыть # ^ |
         
        Проголосовать: нравится +11 Проголосовать: не нравится
        При любом раскладе на мой взгляд целесообразнее тестировать по очереди, тогда один из дивизионов узнает свой результат в 2 раза быстрее :) А т.к. второй див многочисленнее и задачи там сдаются более активно, думаю первый див будет теститься чуть быстрее (в среднем) ^_^
15 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится -18 Проголосовать: не нравится

Хоть семеро меня минусуйте, но для 11 вечера задачи слишком сложные...когда не очень соображаешь и находишься в полусне, хочется решать задачи на подумал-написал, а не думал-думал-думал-ни фига не придумал и бросил (сугубо личное мнение)

15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
И я думал, прошлый систест был медленный. Кто-нибуть видел фразу Time limit on test 100500, или это что-то связанное с системой, а не с количеством тестов? А то 3% за полчаса((
15 лет назад, скрыть # |
 
Проголосовать: нравится +5 Проголосовать: не нравится
i am interested in what was 6th test at C for div 2 and A for div 1
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
For div2 C, I expanded the equation and got:
y1/y2 = -(t0-t2)/(t0-t1)
What were the conditions for the solution ?!
Thanks :-)
15 лет назад, скрыть # |
 
Проголосовать: нравится +6 Проголосовать: не нравится
Решил во избежание неприятностей написать в B двойной хеш.
В результате получился такой код:
  1. if (prefixHash1 * p1[n-len] != suffixHash1 && prefixHash2 * p2[n-len] != suffixHash2) {
  2. return -1;
  3. }
Моя невнимательность в два раза повысила шансы коллизий (правильно || вместо &&). К счастью, авторы не валили хеши, и я жив)
15 лет назад, скрыть # |
 
Проголосовать: нравится +38 Проголосовать: не нравится
Время, которое я потратил на каждую из задач
A -- 31.13
B -- 29.11
C -- 28.11
D -- 27.48

Что-то не так со сложностью :о)
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    Мне кажется, что обычно в начале контеста мозги немного "не разогретые", и А кодится немного дольше, чем могла бы. И если это что-то простое, то разница между 3 и 5 не велика, но между 18 и 30 уже значительна. По крайней мере,у меня появилась такая гипотеза из-за А последних 2 раундов, где они были сложнее обычного и в табличке сдач по скорости находились на 3-4 месте.
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +23 Проголосовать: не нравится
    Похожая ситуация:
    A - не сдал (упало на систестах, ну ладно, сам тупой)
    B - сдал с +2 за 49 минут
    C - сдал с +1 за 19 минут
    D - сдал с + за 17 минут.
    "Что я делаю не так?" :)
15 лет назад, скрыть # |
 
Проголосовать: нравится -15 Проголосовать: не нравится

Автору минус за вторую задачу. Спасибо конечно, что я не получил по ней минус из-за своей невнимательности, но автору все равно минус за задачу)

Точнее, за тесты. У меня прошло неверное решение, в котором классический баг (забыл забрать с этапа дебага) - слишком маленькое основание хэша.

У меня вместо 47 оставлено 17. Это меньше размерности алфавита, и очень легко поймать коллизию. 

Т.е. строки типа 18-1 (18ая буква и 1ая буква) и 1-2 (первая буква алфавита и вторая буква алфавита) считаются равными.

  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    Большее основание хеша не делает Ваше решение гарантированно правильным. Потому классический баг, ИМХО, заключается в отсутствии итоговой проверки на равенство без хешей, а не в маленьком основании.
    • 15 лет назад, скрыть # ^ |
       
      Проголосовать: нравится 0 Проголосовать: не нравится
      Но такая проверка может увеличить асимптотику (не в этой задаче).
      • 15 лет назад, скрыть # ^ |
         
        Проголосовать: нравится +5 Проголосовать: не нравится
        Если проверять константное количество случайных элементов, то асимптотика сохраняется, но контртесты исчезают.
        • 15 лет назад, скрыть # ^ |
           
          Проголосовать: нравится +1 Проголосовать: не нравится
          Да, но если не проверять полное совпадение, вероятность контртестов остаётся ненулевой. Тогда уж можно просто взять хэши по двум основаниям.
          • 15 лет назад, скрыть # ^ |
            Rev. 2  
            Проголосовать: нравится +5 Проголосовать: не нравится

            Если вы выбираете случайные элементы, то контртеста нет. Может случиться, что возникнет ошибка, но только если рандом сойдется очень неудачно. Но такого на наборе из 100-200 тестов не случится. То есть, упадет не из-за того что составители тестов молодцы, а из-за неудачного стечения обстоятельств.

    • 15 лет назад, скрыть # ^ |
       
      Проголосовать: нравится -16 Проголосовать: не нравится
      Во-первых.
      Всегда, когда писал хэши, брал основание порядка 1000, но простое и писал в int64. Помню только один случай, чтобы такой хэш упал из-за коллизии.
      Во-вторых. 
      Конкретно в этой задаче хэши не нужны.
15 лет назад, скрыть # |
Rev. 3  
Проголосовать: нравится -6 Проголосовать: не нравится

В прошлом комментарии ошибка.

15 лет назад, скрыть # |
 
Проголосовать: нравится +7 Проголосовать: не нравится
Давненько не видел стольких завалов на системном тестировании,столько красного цвета-_-
На самом деле хорошие и интересные задачи,но по мне там все таки C div 2(A div 1) стояла не на своем месте,ей бы стоило быть по крайне мере D(B).
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Все-таки А это далеко не 500-ка. Можно было в B поменять условие так, чтобы заходил бинпоиск по длине и хэши, чуток снизить ограничения и это была бы почти А. А А сделать B :)
15 лет назад, скрыть # |
 
Проголосовать: нравится +11 Проголосовать: не нравится
Урра!!! Снова красный :))))
15 лет назад, скрыть # |
 
Проголосовать: нравится +4 Проголосовать: не нравится
если б не реформа!
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
For DIV-1 B, is it expected that an suffix array algorithm + binary search (each iteration run a linear scan) (O(N lg N)) will get TLE?
Is anyone who AC this problem by suffix array + binary search?
I just wanna know, whether my code have some logical bug, or it is just too slow for this contest.
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    Suffix Array has complexity NlogN with big constants, even when Suffix Array si NlogN it requires a lot of optimisation to get it work here. NlogN = 1,000,000*20 = 20MM, but looking your loops it seams ~4NlogN or greater ~ 80MM, adding the binary search for searching the string in places it tooks more than 100MM which is near TLE
15 лет назад, скрыть # |
 
Проголосовать: нравится +8 Проголосовать: не нравится
Серия эпичных багов продолжается.
if (t2 == t0) {
    out.println(0 + " " + t2);
    return;
}
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Как ведется расчет рейтинга по итогам этого контеста? Я первый раз участвовал в соревновании и мне начислили 1445 очков рейтинга. Не слишком это много для двух решенных задач?
15 лет назад, скрыть # |
 
Проголосовать: нравится +3 Проголосовать: не нравится
Задача А выявила код, дающий разные ответы на gnu и mvc :(
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

По задаче С:

Походу перебор всех состояний холодной воды О(х1) и нахождение для  каждого состояние количество теплой воды за О(1) не катит.  

15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Слив в лучшихх традициях :o)
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
My solution for D works on my computer and on "Custom Test", but not on the grater.
Any ideas for what might cause that kind of error?
15 лет назад, скрыть # |
 
Проголосовать: нравится -8 Проголосовать: не нравится
I am blue for the first time.Thanks Ripatti for preparing such beautiful problems.Took me 13(my lucky number)contests to turn it blue
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
-1 к рейтингу, умудрился же так эпически(
15 лет назад, скрыть # |
 
Проголосовать: нравится +2 Проголосовать: не нравится
My solution gives correct output on my computer and different output on judge for tes-31 of prob-C of div2.[Involves floating point comparisons]
Does it have anything to do with optimizers ?
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

подскажите по задаче С(2див)

Там можно было просто посчитать (t2-t0)/(t0-t1) и перебирать y2

а y1=y2*(t2-t0)/(t0-t1)

и потом считать какое меньше всех отличаеться после округления.  

15 лет назад, скрыть # |
 
Проголосовать: нравится +3 Проголосовать: не нравится
Пипец... Прилег на 5 минут перед контестом... Только проснулся.
Задачки хоть интересные были?
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Оптимизатор 2005-го вижака меня разочаровывает, поставьте себе наконец чего-нибудь поновее.
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    AFAIK на наших контестерах пробовали внедрить 2008-й вижак, но в итоге оказалось, что в нём всё только гораздо медленнее - видимо, т.к. STL стала тормознее. И в итоге откатились обратно к 2005-й. Не знаю, возможно, с этой тормознутостью можно бороться какими-то флагами компилятора...

    (Правда, есть вариант сделать доступными обе версии на выбор - как с G++ поступили)

  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +4 Проголосовать: не нравится
    Не знаю, кого как, а меня только радует.
    Раньше, когда я тестил свои решения локально под релизом (Visual Studio 2008 Express) и в запуске, например, в этой задаче, то они работали примерно равное время с точностью до 0.1-0.2 с.

    А вот вчера я немного затупил и вместо массива used использовал set на 10^6 чисел в задаче B. Просто сет у меня локально работал 1.55 с., а вместе с решением вообще получал TL на строке из 10^6 букв 'a'. Однако на сервере решение зашло за 0.69 неожиданно для меня.

    Связано ли это как-то с оптимизатором или сервер и вправду настолько шустрый?
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Кто нибудь подскажите идею динамики D(div 1)? Понятно, что чисел Фиббоначи меньших 1018 буквально 87 штук. Но что с ними делать дальше?Никак не могу придумать дальше. Спасибо!
  • 14 лет назад, скрыть # ^ |
    Rev. 2  
    Проголосовать: нравится +1 Проголосовать: не нравится

    Все достаточно просто - есть стандартная динамика a[i][j], где i - номер позиции в системе счисления, j - разница между записанным в 1..i числом и тем, что надо получить. В этой задаче можно заметить, что получаемые j в фибоначчиевой системе счисления записываются как a_1*fib[i] + a_2*fib[i+1] + a_3*fib[i+2] + a_4*fib[i+3], 0 <= a_k <= 1. 

    Дело в том, что fib[i+4] и больше разницы будет иметь ответ 0.

14 лет назад, скрыть # |
 
Проголосовать: нравится -12 Проголосовать: не нравится
In problem C in Div-2,
how can we recognize that the bath is going to be fulled? there is no data about bath size :?
14 лет назад, скрыть # |
 
Проголосовать: нравится +3 Проголосовать: не нравится
А разбор будет? Я все жду и жду)
  • 14 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    Особенно, разбор Е. Очень хочется узнать, как же там перебор-то правильно оптимизить. Понятно, что вроде C(38,9) не очень много, 2^28 тоже не очень много, но на ТЛ хватит.
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
hey all .... i am having RTE in problem -4 (div-2) on test-25. i am leaving ma code here.. plz some one help me getting a AC.


#include<stdio.h>
#include<iostream>
#include<string>
#include<string.h>
#include<cmath>
#include<vector>
#include<queue>
#include<stack>
#include<algorithm>

using namespace std;

string s;

vector<int>v[333];


bool if_true(int mid,int dis){
    int i;
    for(i=0;i<=dis;i++){
        if(s[i]==s[mid+i] && s[i]==s[s.length()-1-dis+i])continue;
        else return false;
    }
    return true;
}

int main()
{
//    freopen("sam.txt","r",stdin);
    int i,j,dis;
    char a,x;
    cin>>s;
    for(i=0;i<s.length();i++)v[s[i]].push_back(i);
    a=s[0];
    x=s[s.length()-1];
    int dis1=-1;
    int mid=-1;
    for(i=0;i<(signed)v[x].size()-2;i++){
        dis=v[x][i];
        if(s[s.length()-1-dis]==a){
            for(j=1;j<(signed)v[a].size()-1;j++){
                if(s[v[a][j]+dis]==x && s.length()-1-dis>v[a][j]){
                    if(if_true(v[a][j],dis)==true){
                        if(dis1<dis){
                            dis1=dis;
                            mid=v[a][j];
                            break;
                        }
                    }
                }
            }
        }
    }
    if(dis1==-1){
        cout<<"Just a legend"<<endl;
        return 0;
    }
    bool flag=true;
    for(i=0;i<=dis1;i++){
        cout<<s[i];
    }
    cout<<endl;
    return 0;
}
14 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится -8 Проголосовать: не нравится


14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
I am struggling with the Hot Bath problem (Problem C on Div 2 and Problem A on Div 1).  My code passes the given examples and is consistently generating wrong answer on test 8.  Can anyone give me advice on corner cases I may be missing?
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Время начала Codeforces Beta Round #94 - это дискриминация школьников?
14 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Where is the Editorial ?