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

Автор MikeMirzayanov, 15 лет назад, По-русски
Всем привет!

Приглашаю вас принять участие в Codeforces Beta Round #48. В этот раз я выступил в роли автора контеста - приятно знаете ли иногда попридумывать задачки :) Вас же я призываю последовать моем примеру. Проект Codeforces всегда рад как новым авторам, так и тем, кто уже выступал в этой роли. 
С предложениями пишите Артему Рахову (координатору задач проекта). Участники ждут ваших задач!

UPD:
Для удобства и некоторой подстраховки, условия задач будут доступны по ссылке.

А вам я желаю красивых решений,
MikeMirzayanov
  • Проголосовать: нравится
  • +64
  • Проголосовать: не нравится

15 лет назад, скрыть # |
 
Проголосовать: нравится +4 Проголосовать: не нравится
Не раскроете тайну, почему этот раунд более длинный, чем обычно?
15 лет назад, скрыть # |
 
Проголосовать: нравится +8 Проголосовать: не нравится
Is this round supposed to be exceptionally hard?
15 лет назад, скрыть # |
 
Проголосовать: нравится +5 Проголосовать: не нравится
А что с баллами за задачу? Минимальный балл установится через тоже самое время?
15 лет назад, скрыть # |
 
Проголосовать: нравится -8 Проголосовать: не нравится
Why does this round has 2 hours 30 minutes? More problems?
15 лет назад, скрыть # |
 
Проголосовать: нравится +3 Проголосовать: не нравится
А на русском условия по доп ссылке есть?

15 лет назад, скрыть # |
 
Проголосовать: нравится +12 Проголосовать: не нравится
Спасибо за продление регистрации!
15 лет назад, скрыть # |
 
Проголосовать: нравится -14 Проголосовать: не нравится
Problem B is too complex to understand :-/
15 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится

Извиняюсь за вагонизм и незнание правил.

Если я сдал задачу и она прошла претесты с первого раза, потом я решил еще раз засубмитить эту задачу но другое решение. Будут ли у меян при повторном субмите сняты дополнительно балы за задачу?

15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
I could not login using Gmail until now. Has anyone had a similar problem?
15 лет назад, скрыть # |
 
Проголосовать: нравится +10 Проголосовать: не нравится
Получаю вот такое при попытке взлома:
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится -17 Проголосовать: не нравится
    Ненасытный Вы наш! 20 взломов не хватило...
    А, по-моему, что-то не так . Это же соревнование среди тех, кто умеет решать задачи. А тут найдя хороший тест можно пройти "огнем и мечом"...  
    • 15 лет назад, скрыть # ^ |
       
      Проголосовать: нравится 0 Проголосовать: не нравится
      Я, между прочем, на том же решении еще -2 получил, пытаясь подобрать другой тест
      Первоначальный тест был основан на том, что происходило деление на 0. Возможно с этим связана проблема с его применением
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    То же самое, причем на разных тестах, но у одного и того же участника.
    Протокол тестирования при этом недоступен.
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Я написал генератор на С. У меня ошибка некорректный тест.

FAIL Input can't contain line ending with space, but line 2 (1-based) ends

Неужели так обязательно нужно делать?

15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Обидно получилось. Нашел баг в последние секунды, отправил задачу, когда на таймере было 00:01, но она не отправилась (((
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
War of Hackers.
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
What happens if you have a submission that you haven't locked by the end of the round? I left 1 of my problems unlocked accidentally today :/
15 лет назад, скрыть # |
 
Проголосовать: нравится -9 Проголосовать: не нравится
ОЧЕНЬ не понравилась четвертая задача.
Ну зачем вообще существуют задачи на разбор случаев - разве это интересно???
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +10 Проголосовать: не нравится
    Контест - отражение жизни. В реальном программировании такое есть - значит должно быть и на контесте
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    ну, если бы из этой задачи убрать нули(то есть по факту остальное уже толком не случаи), то вообще не интересно будет)
    а так я не пропихнул..
  • 15 лет назад, скрыть # ^ |
    Rev. 3  
    Проголосовать: нравится 0 Проголосовать: не нравится
    Такие задачи просто НЕОБХОДИМЫ для контестов с возможностью взлома. Ведь чаще  ошибка возникает именно в непросмотре какого-то случая, чем по ТЛ либо из-за неверного алгоритма(эти проблемы ловятся при отладке)
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    там динамика сильно может помочь
    я поначалу тоже стал все случаи рассматривать
15 лет назад, скрыть # |
 
Проголосовать: нравится +5 Проголосовать: не нравится
А что случилось с 4-ой задачей? Я так понял, что произошел реджадж но по-моему он произошел только у тех, у кого она к тому моменту времени не свалилась. Это нормально?
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится -6 Проголосовать: не нравится
    Видимо разбирают случай 0 1. Наверное все таки ответ 0 так как чисто математически кто нам запрещает делить на 0 и устремлять лимит?
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Исчезают АС по Д вроде бы? Происходит ретест?
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
А можно полностью увидеть 34 тест к задаче D? Показанной части из кучи 0 недостаточно чтобы понять почему ответ 1.
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
а можно каким-то образом узнать причину RE на входном тесте,при том,что на входном тесте программа работает?
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
So frustrated.
I did really bad on this contest.
15 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится
Первый мой контест.
Мало того, что C писал целый час, наделав по ходу кучу багов, так еще и забыл про совпадающие координаты у городов :-(  В итоге WA9 и нехватка времени для решения D...
Upd.: Сразу же после контеста сдал C. Еще больше обидно...
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Влад красава - решил F)) Раунд был необычный)
Вопрос по правилам - если мою заблокированую задачу взломали, я имею право на взлом дальше? (не говорите перечитать правила  - просто ответьте кому не сложно))
15 лет назад, скрыть # |
 
Проголосовать: нравится +5 Проголосовать: не нравится
Some of the test cases are too big to copy. How to get them?
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
ааа....что за жесть - смотрю рейтинг, тут выясняется что я как то залогинен за dzulgakov. жму F5 - и я уже Zaoc. что с системой??
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
I've always used printf for floating points, but here in codeforces I was afraid with these output problems and used cout. In problem C, I don't know exactly based on what but this time I didn't fixed the precision of cout expecting it would take care for me and my program got wrong answer. I resubmitted it now and adding just this line "cout << fixed << setprecision(10);"  it got AC.

Does anyone know how the cout define the decimal length when nothing is said?

Does %lf work correctly for doubles here?

15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Такой вопрос - а есть где-нибудь на сайте сервис "run on server", позволяющий узнать, сколько код выполняется на сервере? На топкодере можно запустить в арене, на SN*S с некоторых пор в контесте есть задача с ТЛ 2 секунды, которую невозможно зааксептить. Очень востребованный был бы сервис, сегодня из-за его отсутствия пришлось потерять 300 баллов - я зря ресабмитил E (как показало дорешивание, первая версия на сервере тоже укладывалась в ТЛ).
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Почему я только сейчас узнал, что в visual studio 2005 abs работает только с целыми числами? *WALL*
15 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится
Что предполагалось более сложным в E?
Использовать для расчета числа путей длиной 2,3 или 4 матрицу смежности или убирать из ответа повторы?

Спасибо за контест, очень понравился =)
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

Кажется чтото не так с Mono.

Разделитель между целой и дробной частью определяется случайным образом?:)

Посылка номер 233701 -первые 4 теста почему то точка а в 5-ом уже вывелась запятая и WA

15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Админ, можете plz посмотреть, мое решение выдает другой ответ  на вашем checkere

Задача С
Посылка 233809
тест 6
Правильный ответ 
1.000000
2.000000  5.000000 8.000000
когда я делаю у себя все в норме, но когда отправляю моя прога возращает
1.000000
2.000000  5.000000 7.000000
Пробывал gnu c++ и MS 2005 

15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
А как получить ответ 4 в тесте 40 задачи F? Какой там путь?
15 лет назад, скрыть # |
 
Проголосовать: нравится +35 Проголосовать: не нравится
Извините меня, пожалуйста, но не могу удержаться. Я, конечно, понимаю, что важнее всего умение решать задачи, но хотелось бы, чтобы в условиях и правилах не было ошибок на "-тся - ться".
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    Да уж, это вообще бесит. У CodeForces же были не-программисты в штате... Неужели никто не знал русский в школе на пятёрку?..
15 лет назад, скрыть # |
Rev. 2  
Проголосовать: нравится 0 Проголосовать: не нравится
Слушайте, а тест взлома теперь не посмотреть, или я что-то не то делаю?

UPD. Подсказали, все взломы в разделе "Взломы". Вот ведь магия)
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
My sad story.
Like on TopCoder; reply to this with your sad stories.

On task C, around half an hour before the end of the contest, I noticed it was possible to print the distance in scientific notation (i.e. 1.5e+8). I asked whether it was OK. Then, I saw an answer "No" and resubmitted (so my points for the task dropped to 1000). Ten minutes later I noticed the "No" I saw was in the Broadcasted column and the actual answer was yes :D...
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    On task C,
    During competition i wrote (int)floor(p1+mid) and got WA.
    In practice i removed floor,i.e, (int)(p1+mid) and got Accepted.
    That just makes me sad!
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    For my D to pass system tests I just had to either change abs() to fabs() or std::abs(), or add "using namespace std;". I did neither, so it just used the abs for int from double argument without any compiler warnings. Stupid mistake, but very educational for the future... :)
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    On problem D, I misread the statement and assumed that the geometric ratio must be integer (though it may be fraction).
    After my program passed pretest, I locked D to hack other people's solution. Then I finally noticed my misreading with unsuccessful hack like "5 6". Thanks to this, I fell to yellow from red.
15 лет назад, скрыть # |
Rev. 5  
Проголосовать: нравится 0 Проголосовать: не нравится
Why in problem A you didn't mention rotation of 0 or 360 degrees and wrote "they" instead? More intuitively is to rotate one amulet. According to the task two identical amulets are similar, because we can rotate them both for 90, 180 or 270 degrees and then the numbers of dots are equal...
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
My C-program's result  is "Runtime error" on test42 case at finaltest.
But, the same program works without "Runtime error" at "custom test" on test42 case.
Why does it mean ?
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Это у меня или у всех не работает запуск ? 
15 лет назад, скрыть # |
 
Проголосовать: нравится +3 Проголосовать: не нравится
Дебилизм какойто... Никак не могу КФ нормально написать. Вроде алгоритмы правильные придумываю, вроде все правильно делаю-все время сливаю из-за того что забыл элементарный случай рассмотреть...
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    это нормально :)

    возьми себе за правило перед сабмитом:

    1. проверить размеры массивов
    2. проверить, везде ли поставил int64 вместо int (для даблов - правильно ли сравниваешь с eps и хватит ли точности)
    3. проверить порядок ввода n и m (если в задаче дано n и m - например, граф)
    4. проверить написание "No solution.", "No solution", "NO", "No", "YES", "Yes" и т.п.
    5. проверить тесты с n=0, n=1 (можно и с n=2)
    6. если задача про графы, проверить на несвязном графе (если он допускается по условию)

    конечно, в каждой задаче свои приколы, но выполнение этих правил может спасти от некоторых дурацких ошибок
    • 15 лет назад, скрыть # ^ |
       
      Проголосовать: нравится 0 Проголосовать: не нравится
      Вроде везде векторы использую, даже когда потоки пишу... EPS стоит 10e-9. Обычно я забываю n и m заинициализировать, поэтому замечаю если если в неправильном порядке считал(тем более особыми зверьми они даже даются в разном порядке). Четвертый пункт ряд контестов, где нужно было вывести что то типа "answer on this test case is absolutely nothing" научил меня досканально проверять каждую букву. Правда я на ерунду забиваю типа тесты 0 и 1, из-за чего не раз влетал...Ну вот сегодняшний контест. Первые 3 задачки были просто наилажовейшие, 4-там да, надо было учесть пару случаев,5-подумать, но вроде алгоритм на meet in the middle придумал, с парой хаков и предподсчетов по ассимптотике, по памяти лез. В результате: А упала не пойми где, В летала на моих тестах, С слетела из-за какой-то ереси(правильно посчитал, неправильно расставил) D меня как и всех завалили на тесте 0 1-хотя я догадывался про этот тест-Е я дописал но начал палево выдавать. Нет это черттечто.
      • 15 лет назад, скрыть # ^ |
         
        Проголосовать: нравится +5 Проголосовать: не нравится
        Я почти уверен, что все ваши "несчастья" исходят от чрезмерного употребления слова "палево". Тем более, что употребляете его вы в каком-то непонятном для меня (саратовское наречие?) смысле :)
        • 15 лет назад, скрыть # ^ |
           
          Проголосовать: нравится 0 Проголосовать: не нравится
          Полностью согласен. Словари, в которых я смотрел значение этого слова, дают совершенно другое значение, никоим образом не относящееся к программированию в целом и к ACM ICPC в частности. Толковый словарь Ожегова говорит о цвете. В других приводится значение на воровском жаргоне. 
        • 15 лет назад, скрыть # ^ |
           
          Проголосовать: нравится +23 Проголосовать: не нравится
          На саратовском наречии, распространенном главным образом в саратовском ЦОППе, слово "палево" обычно означает "палёное решение". Вероятно, этимологически слово "палево" пошло от "запалить задачу" в смысле "засветить задачу", что по смыслу близко к слову "баян" (т.е. всем известная задача, которая уже встречалась где-то). Но теперь оно чаще употребляется в смысле "палёное решение = неправильное решение", баги, ерунда, неправильный ответ, выдаваемый программой (как в комментарии JKeeJ1e30 выше). Также слово "палево" подразумевается как антоним слову "огонь", которое, наоборот, означает "это круто!", "клевое решение!", "ты жжешь!", хотя последнее выражение может употребляться и с ироничным оттенком, в случаях когда человек творит что-то смешное и производит при этом не "огонь", а скорее "палево". Таким образом, понятия "огонь" и "палево" раскрывают процесс горения в диалектическом единстве противоположностей, первое отражает его позитивные, а второе - негативные черты.
15 лет назад, скрыть # |
 
Проголосовать: нравится +10 Проголосовать: не нравится
Хочу сказать отдельное спасибо за то, что сегодня во время раунда все работало отлично - даже в первые секунды, когда все одновременно открыли условия, никаких задержек не было.
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
What is happen!?
After Dec 29, 2010 12:09:01 AM(submit ID 234372), my soucecode is accepted.
It is no difference from the code I submited at the contest.

If you fixed it, thank you!!

I want to know what caused the problem.
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
I have a question about problem B. My solution contained the following lines of code. When I was testing it on my local computer by manually pasting input to the command line, it would never get past the while loop. However, it seems to work fine when I submitted it. I would appreciate it if someone could tell me why this happens.

Scanner in = new Scanner(System.in);
StringBuilder sb = new StringBuilder();
while(in.hasNextLine()) sb.append(in.nextLine());
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +12 Проголосовать: не нравится
    if your program reads from a console and you are testing it in the "interactive mode", you need to indicate the end of stream by sending EOF after you're done with entering all the input data. it could be done with either ctrl+z or ctrl+d, but it's actually platform-dependent and may not even work in some IDEs. alternatively, you can have your program read data from file using a redirection like "< input.txt"
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится
    if your program reads from a console and you are testing it in the "interactive mode", you need to indicate the end of stream by sending EOF after you're done with entering all the input data. it could be done with either ctrl+z or ctrl+d, but it's actually platform-dependent and may not even work in some IDEs. alternatively, you can have your program read data from file using a redirection like "< input.txt"
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +6 Проголосовать: не нравится
    I'm sorry for quite a few identical replies, man.

    The initial post didn't seem to go through and I decided to click the button once again. After that the site went down and started showing "all your bugs are belong to me" error message for a couple of minutes. But then all the sudden all my replies got posted, and I can't even delete them now.
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Как решать F?
Или, когда появится (и появится ли) разбор?
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится +3 Проголосовать: не нравится
    Избавиться от циклов, для этого можно взять функцию которую используют для нахождения точек сочленения и объединить вершинки с теми в которые можно прийти в обход родителя. Для объединения можно использовать систему непересекающихся множеств.

    Обрезать у получившегося леса все листики, запомнить их число - они останутся в искомом графе. Теперь в каждой компоненте связности найти самый длинный путь, он тоже останется. Гусеница получается склеиванием этих путей.
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
Problem 1
My solution couldnot pass test 14. Can you suggest reason for it?
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
My solution to A got a runtime error on test 20 in the system testing phase. Could anyone tell me what I did wrong?

It passed a couple of test cases with 1000 tiles so memory or anything else should not be a problem....
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
My C-program is submitted at contest, the system return "runtime error".
But, I submit the same code many times after the contest, the system return "Accepted".

What does it mean?

The source code and run-ID is written on http://codepad.org/uQhX4kbi.

Please, check it.

I'm sorry to post comments many times, but I don't understood why my C-program was not accepted.
  • 15 лет назад, скрыть # ^ |
     
    Проголосовать: нравится 0 Проголосовать: не нравится

    I tried ur code...

    total 4 tests (no change in code during tests)

    test lang:GNU C++

    test1:runtime error testno.42

    test2:runtime error testno.50

    test3.runtime error testno.50

    test4.runtime error testno.50

    -----------------------------------

    test no. 50 was:

    6

    9 9 9 9 9 9

    • 15 лет назад, скрыть # ^ |
       
      Проголосовать: нравится 0 Проголосовать: не нравится
      Thank you.
      I understood what caused the error.

      An iterator "p" can point to pos.end().
      And I used value, (*p).

      So my program sometimes can return runtime error.

      If I was lucky at the contest, my program might be  accepted.
      I want to be careful not to have the same error.

      Thank you for your testing.
15 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится
I am waiting for tutorial for last problem .....
»
6 лет назад, скрыть # |
 
Проголосовать: нравится 0 Проголосовать: не нравится

I am still waiting for tutorial for last problem .....