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

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

Сегодня мы рады пригласить вас принять участие в раунде #83, составленном по мотивам нашей подготовки к ACM в прошлом году, когда 
Dima был в гостях у German University in Cairo (GUC).

Мы подготовили набор задач про жизнь в Египте и GUC. Надеемся, вам понравится :) Разбалловка задач в Div 1 & 2 стандартная: 500-1000-1500-2000-2500.

Авторы задач: 
Dima и я. Спасибо всем, кто помогали нам готовить контест: RADConnectorit4.kpDelinurи MikeMirzayanov.

Желаем вам приятного, познавательного и интересного соревнования!

Всем удачи!
  • Проголосовать: нравится
  • 0
  • Проголосовать: не нравится

13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Жизнь в Египте? Должно быть интересно)
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Давно не было контестов для див.1, подготовленных фиолетовенькими.
Это только доказывает, что рейтинг вещь весьма субъективная.
Должно быть интересно.
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
No. of pariticipants Div 1 and Div 2 are imvalanced. 371 : 1006
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Am i able to unregister now?   
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Of course you are!
  • 13 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

    You can just ignore the round without any consequences. The rating won't change unless you make at least one submission.
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Oh great. So i'll just leave the contest. Anyway GoodLuck to u all :)
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      You can hack without submitting ?!
      • 13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        no, no
      • 13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Hacking needs Locking and Locking needs Submitting => Hacking needs Submitting
        • 13 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          I know I was just commenting on
          "The rating won't change unless you make at least one submission or hacking attempt."
      • 13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        No
      • 13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Oh, right, you cannot. I just remembered similar rule on TopCoder: you can make a challenge attempt without opening problems and have rating changed.
        • 13 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Doesn't this imply that you can read the problems and then decide if you want to participate?

          If I undesrtood correctly, doesn't seem really fair...
          • 13 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            Challenge phase does not allow coding.
            [Also, there is less chances that in just 15 minutes you will understand the question, then find the corner cases and verify others code.]
          • 13 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            I think it is unfair too
          • 13 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            Every weekend , people from all over the world come together and solve some problems.[which are the same problems for each one of us]
            How about solving a BIG problem and everyone contributing a little in it.
            Just in 2 hrs solving a BIG problem, doesn't it sound interesting.?
            I appeal all red coders to think about it, is it possible for you guys to formulate one such problem and distribute it among all the people , so that everyone contribute his part , and finally a big task is done.
            [this will give more satisfaction and fun!]
            ......Just a thought :D
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    If you dont submit anything,you wont be rated,no need to unregister.
13 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

Мне ответили что второй претест в первой задаче это второй семпл,  мой код работает в запуске , а в системе получет ошибку исполнения id посылки 627968
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    +1 такая же трабла была. Рабочий код получил РE 2.  на 44 минуте.
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Ой, как плохо... :( Перенести контест на день ближе и не предупредить об этом отдельно, и не обратить на это внимание. Я понимаю, что в письме, которое пришло было указано 23-е число, но я до туда просто не дошёл, я смотрю КФКонтест83... мысль: ага, помню. До даты даже не дошёл. Я думаю не я один такой, кто так профэйлился.

... печаль :(

13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
It's very weird...
I swear that I've seen the time yesterday and it was 08/23/2011 08:00PM
I miss this game now....
I was torn!!!
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
в задаче C, последнем примере, проверьте выходные данные
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    пардон, неправильно условие понял
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Пиши клары в таких случаях - быстрей ответят и минусов не нахватаешь.
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
when a solution gets hacked and a contestant resubmits.. is his code tested on the hacking test case also??
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Почему мои хаки уже минут 5 виснут?
13 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

Ну, в первом дивизионе задачи получились "чуть-чуть" несбалансированными.
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
In my opinion, this contest in div1 was not so good. Very easy problems A and B with really difficult problems C, D, E. As a result more that 200 participants solved A and B and only time to divide them. Of cource, I'm understand that it's really difficult to think of tasks.
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    I agree that the gap between number of submissions between B and C was huge, but I think it's really hard to measure difficulty on that fine level.
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Как вторую делать не через цешки? 
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Посчитать вероятность того, что в составе сборной не окажется ни одного человека с его факультета, и вычесть это число из единицы
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Та ладно оО
      • 13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        А чем тебя не устраивает решение через цешки?
      • 13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        А что ты тогда не понимаешь? То число, о котором я сказал выше, считается тривиально-грубо говоря, пронумеруй места в сборной, и на каждое следующее место вызывай кандидата с какого-то другого факультета. Как вызвал-меняешь суммарное количество студентов на других факультетах. Задачка-баян.
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      А ето разве не через "цешки" ? :)
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      интересно, как JKeeJ1e30 стали плюсовать :))
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Решение через цэшки, только нужно оптимально их считать.

    Нужно посчитать C(x, z) / C(y, z) = x! * z! * (y - z)! / z! / (x - z)! / y! = ((y - z)! / y!) * (x! / (x - z)!) =
    = (x - z + 1) * (x - z + 2) * ... x / ((y - z + 1) * (y - z + 2) * ... y)

    Чтобы не было переполнений в double или long double, бежим по циклу и считаем так:
    res = 1;
    FOR i: res *= (x - z + i) / (y - z + i)
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Вопрос то был, как не через цешки. Через цешки, наверное, автору комментария понятно :)
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    К примеру, можно так.
    Пронумеровав всех на целевом факультете будем делать для каждого на факультете, кроме начального игрока, такое.
    К ответу прибавляем вероятность того, что все предыдущие с этого фака не попали, а этот (и возможно, кто-то следующий) попал.
    Получается примерно так.
    for (int i=0; i<Q-1; i++)
    {
    res+=prob*(N/(S-i-1));
    prob*=1.0-(N/(S-i-1);
    }
    Q - к-во на целевом факультете, N - размер команды без 1 (наш участник), S - сумма людей на всех факах.
    То есть, также храним вероятность того, что предыдущие не попали, и обновляем ее каждый раз.
    P.S. Для правильности вычислений, prob изначально равно 1.0

  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Вообще говоря, её можно было красиво (на мой взгляд) решать рекурсией:

    f(a,b,n) = вероятность взятия n элементов из (a+b) элементов так, что будет взят хотя бы один элемент из a.

    Тогда
    f(a,b,0) = 0
    f(a,b,n) = a/(a+b) + b/(a+b)*f(a,b-1,n-1)
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Как решать D(div 2)/B(div 1)? 6 раз WA 5 почему-то
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Кто-нибудь объяснит мне, почему в задаче D на второй тест ответ 113, а не 143?

Правильно ли я понимаю, что задача в том, чтобы свести очевидную динамику по остаткам по каждом из преступлений к умножению матрицы на вектор, матрицу возвести в степень быстрым образом и потом просуммировать в ней нужные числа в первом столбце?

Я ручками возвёл матрицу в D в шестую степень и там нет нигде числа 113 и в помине.

Хотя вот тут товарищи говорят, что всё правильно. Пойду курить, где ошибка...
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    у меня тоже было временно такой ответ, исправил баг, стал 113, 10 минут не хватило что-бы засабмитить...
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      В чём, если не секрет, баг?
      • 13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Их было довольно много, точно не помню. Вроде-бы в матрице не те элементы к ответу добавлял. + была ошибка в подсчете, много лишних переходов.
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Могу предложить альтернативное решение (на контесте меня от полного решения отделила строчка int n; , только исправил на long long и в дорешке зашло).

    Будем делать нечто вроде meet in the middle и хранить все полученные результаты в map. Состояние - это число преступлений которые мы хотим совершить и набор остатков, которые хотим получить - пилим n пополам, перебираем всевозможные способы "склеить" нужные остатки и складываем.
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Вообще говоря, это и есть возведение в степень, просто не по степеням двойки, а по числам N / 2k, N / 2k + 1. ;)
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
I was confused in first task reading that the hero is egyptain and reads from right to the left. What for it was said?? 
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Я буду внимательно читать условия

Я буду внимательно читать условия

Я буду внимательно читать условия

13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Кто нибудь может обьяснить, почему код юзера nagochan по задаче B работает? Вот ссылка. Проверял локально на тесте, в котором в команде 100 человек, есть 1000 факультетов по 100 человек в каждом, а наш герой принадлежит первому факультету. Прога дает неверный ответ. А на сервере кодфорсеса - верный(проверял неудачным взломом + после контеста на запуске).
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Уточню вопрос. Программа 100 раз подряд делит переменную, в которой изначально хранится 1, на число порядка 100000. Вопрос: почему эта переменная не превращается в 0? 
13 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

Ламал решения по В, в которых отдельно умножались числители дробей и знаминатели--как не странно прошли:)
Но разве double в С++ удержыт столь оргомные числа ?

Сколько не пытался локально решить на своём тесте - Runtime Error, или какие-то непонятные символы в выводе.

upd: Один с кодов
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Я взламывал kcm1700 , у которого явный выход за пределы массива - 100 вместо 1000. И это работает. Где segmentation fault, спрашивается?
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Это следствие работы оптимизатора. Результаты промежуточных вычислений не заносятся в переменную res типа double на каждой итерации, а остаются в 80-битных регистрах сопроцессора (FPU), а разрядности этих регистров (числа бит в порядке, в первую очередь, а не в мантиссе) достаточно для хранения больших чисел, которые возникают в этой программе.

    Благодаря такому решению оптимизатора и точность получается выше, и скорость работы кода возрастает (нет лишних пересылок между регистрами и памятью и нет операций преобразования вещественных чисел из 64-битного формата в 80-битный и обратно). В обычной жизни такое поведение компилятора может только приветствоваться, но здесь оно приводит к неочевидной невозможности взлома.

    Если выключить оптимизацию (убрать ключ -O2) или добавить спецификатор volatile перед "double res = 1.0;", программа действительно начинает работать неправильно. По крайней мере, так получилось у меня, компилятор g++ 4.5.0.
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Да там, я думаю, хоть треугольником Паскаля можно. Нам же не надо все число держать, только его первые несколько цифр. Дабл с этим прекрасно справляется.
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
А на чём все ломали A div 1? Неужели на локальных вершинах?
  • 13 лет назад, # ^ |
    Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

    Может кто-то и на них, но я полконтеста читал чужие решения и так ничего именно на это не нашёл. А решения ломались и ломались.. блин :(

    P.s. надо будет проверить, на чём ломали то наши.... Если на этом то мне либо крупно не повезло, либо я очень невнимательный...
    хоть
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Видимо да,у меня +9 взломов на этом...Других ошибок не видел
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Меня взломали изолированной вершиной за три минуты до конца, я успел пофиксить и пересабмитнуть :D
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      А я читал долго твое решение по B, а A так и не посмотрел - понадеялся, что Coder хорошо поработал ^_^
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Are the Java solutions for problem A going to be rejudged?
I sent Java solution for problem A and I got "runtime error", I sent again the same solution few minutes after and I got Accepted, but I guess some points are lost for "wrong" submission.
I noticed the message during the contest that there was some problem with "runtime error" with Java solutions on task A. After the contest I saw that the my first "runtime error" solution was tested again, this time with "Accepted" but I think the points remained the same...
Thanks in advance

13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Хотел взломать одно решение задачи B div. 2 антиQuickSortом, но генератор слишком долго генерил его. Кто-то может дать код антиQuickSort, который работает достаточно быстро, чтобы его можна было отправлять в качестве генератора?
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Ти міг його згенерити в себе на компютері в файл, скопіювати, вбити в код як константу типу string, і просто її вивести.
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Will the contest be "cancelled" for Java users ? I had to resubmit problem A without understanding what was wrong and my B and C failed too (I am not denying that they can be wrong... but it is hard to debug something when the systems preliminary test is not reliable).
13 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится
Please Everyone take a look --->

Which one is better translation ??

---------------------------------------------------------------------------------------------------
"Herr Wafa was also able to guarantee a spot on the team, using his special powers. But since he hates floating-point numbers, he needs your help at finding the probability that he will have at least one teammate belonging to his department."

OR

"Due to their paranormal abilities, Mr. Wafa knew that he really gets into the team GUC. Now he wants to calculate the probability that with him in the team will be at least one student in his department. Since he does not like to calculate with fractional numbers, the task entrusted to you. "
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
In the third example, there are three possibilities to compose the team containing Herr Wafa. In two of them the other player from Herr Wafa's department is part of the team.

OR

In the third example, a team which includes Mr. Wafa, can be made in three ways, two of these three comprise the second player from the Faculty of Mr Wafa.
---------------------------------------------------------------------------------------------------

Comparison of problem setters translation and GOOGLE's translation.
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Why the System-testing didn't run yet?
13 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

У меня, кстати, пропал куда-то неуспешный взлом(если верить общей таблице). Но если смотреть результаты друзей, то он все еще виден. Странно. 

UPD: Прошу прощения, ошибся.
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    может, это связано с ретестом решений на джаве?
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Если верить общей таблице, то у меня вообще 0 взломов, хотя на деле их +3/-3.
    Так что там неверная информация.
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Do I lose a lot of presision by writing
p *= (long double)a/b; instead of
p /= b;
p*=a; ?
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Ok, I had AC with first approach. I just returned -1 instead of 0 when there was only 1 member of sh team...
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Контест удался. Спасибо авторам за интересные и читаемые задачи!
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Так как во время контеста были некоторые проблемы с тестированием решений на Java, то в этом контесте все успешные, но не последние посылки (на претесты) не приводят к дополнительному штрафу, а игнорируются. Еще раз приносим извинения за доставленное неудобство.
=
Since during the contest, there were some troubles with testing Java solutions, all "pretests passed" (except last) submissions do not decrease score, such submissions are ignored. Once again, we apologize for any inconvenience.
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Will it be rated?
    ===
    Будет ли контест рейтинговым?
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      It seems yes. It will be rated. If Java issue affected somebody for 10 minutes of more, we can make the contest unrated for him/her. This fact should be proved by submissions log.
      ===
      Похоже, что да. Контест будет рейтинговым. Если на кого-то сильно повлияла эта проблема (10 минут и более), то для него мы можем сделать участие внеконкурсным. Этот факт должен быть доказан логом посылок.
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    It is written that such submissions are ignored, but having submitted the accepted solution at 19th minute (after the first ignored submission "00:16:40  Skipped [pretests]" at 16th minuted because of the problems with testing Java solutions) I get 412 points, and other coders get for example 458 points for accepted submission in the 21 minute...

    Will the submissions be rescored after the end of System Testing...?

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

What happenes, if I submit a task several times? (all pass pretests)
What if the first is correct submision, but not the second?
How score is calculated?
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    What if the first is correct submision, but not the second?

    then you don't solve the problem
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Well, if there is no penalty for second correct submision, I might want to make several submisions "just in case", to make sure I get the right result.

      So, it is a good thing to know.
      I would assume there is a penalty for resubmision, but I wonder, what happens, if 1st submision is correct, but not the second...
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Моё Полное решение по задаче B на тест "3 1 2 3" выдаёт "NO".
Кажется мне повезло, или я не прав, что у меня не верно решена задача.
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
problem D ,div 2
is it a Combinations problem?
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Задача C div 1 напоминает twofive с IOI 2001.
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Can anybody explain - why the answer for
7
1 2 3 4 8 16 32
in B (div 2) is Yes?

if we use x=6553510=11111111 11111111 2 we will get x*x=429483622510 = 11111111 11111110 00000000 00000001 which fits in 32 bits

13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
По какому принципу происходит распределение по комнатам?
К примеру, в мою комнату (# 7) попало 9 красных: из них 2 не участвовало, а 5 из 7 оставшихся заняли 1, 2, 7, 10, 18 в общем зачете.
В то же время в комнату # 8 попало всего 4 красных, из них участвовало 3.
Сегодняшний раунд был богатым на взломы и в тех комнатах, где было меньше опытных участников, было проще взламывать - в моей же комнате Coder вынес почти все неправильные решения по А в начале контеста, так что дальше и нечем было особо поживиться.
Может, имеет смысл проводить распределение по корзинам, а из каждой корзины по одному участнику в комнату рандомно? Например, как это делается при жеребьевке футбольных турниров. В каждой группе оказывается по одной сильной команде (из первой корзины), по одной послабее (вторая корзина) и так далее.
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Спасибо за контест! В третьей задаче расширил границы массива с [1..1000] до [0..1000] и все прошло! :), буду заводить массивы начиная с нуля теперь!
  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Пиши на си, там все массивы с 0 =))
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      но в С/Джава нельзя так : [-1000..1000], иногда очень удобно =)
      • 13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
           int _a[51];
           for(int i=0; i < 51; ++i)
              _a[i]=i;
           int * a = _a + 25;

           for(int i=-25; i <= 25; ++i)
              cout << a[i] << endl;
      • 13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        В C можно, в java - нет. (хе-хе-хе)
        • 13 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Как это можно реализовать в С? Кроме кода daftcoder'а, конечно.
          • 13 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            В C++ можно написать класс на основе вектора из STL. например это может выглядеть так:

            #include <vector>
            #include <iostream>
            using namespace std;

            template <class t>
            class m_vector: public vector<t>
            {
                int minval;
            public:
                m_vector(int minval=0, int maxval=0): minval(minval), vector<t> (maxval-minval+1) {}
                t& operator[](int id)
                {
                    return vector<t>::operator[](id-minval);
                }
                const t& operator[](int id) const
                {
                    return vector<t>::operator[](id-minval);
                }
            };

            int main()
            {
                m_vector<int> v(-3,5);
                for(int i=-3;i<=5;i++)
                    v[i]=i;
                for(m_vector<int>::iterator it=v.begin();it!=v.end();it++)
                    cout<<*it<<endl;
            }
            • 13 лет назад, # ^ |
              Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

              чистый С:

              int data[maxn * 2], *X = data + maxn;

              теперь индекс X в промежутке от -maxn до maxn, ну +/- единица

              UPD: сорри, не увидел коммент daftcoder'a, способ тот же.
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Спасибо за отличный контест. Жалко я его слил
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

задача В. (див. 2)

7
1 2 3 4 8 16 32

почему правильный ответ YES?

ведь FFFF x  FFFF = FFFE0001. в 32 бита влазит.

  • 13 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Рассмотрим пару чисел (a[3],a[4])
    a[4]>a[3];
    a[3]*2>a[4];
    Поэтому ответ YES.
    • 13 лет назад, # ^ |
      Rev. 4   Проголосовать: нравится 0 Проголосовать: не нравится

      но а[3]*2<a[6]
      • 13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Вам надо внимательнее читать условие.
        Мы выводим YES, когда найдем пару индексов (i,j), что a[i]>a[j], но a[j]*2>a[i]. Выше я привел Вам пример данной пары.
  • 13 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

    Ой, действительно =) там 'YES'
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

It's very good for participant, when his solution is hacked during contest. Someone just do your job. Thank to him. Today i made a big mistake, having written 105 = 10000 :)_)

It's a pity noone hacked my solution... It failed to pass system tests...

If your sols is hacked, will you lose more point then if you just fail to pass pretests??

13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Мде, одного пункта рейтинга до оранжевенького цвета не хватило :-)
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Спасибо авторам за задачи которые я мог решить, но не решил... на таких мне надо тренироваться...
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
the test case for problem E in DivI I is so weak...
The passing java code during the contest didn't handle the 
case that there's a rectangle in a empty space surrounding by other rectangles..
Some Sample:

5

0 0 3 0 3 3 0 3

6 0 9 0 9 3 6 3

6 6 9 6 9 9 6 9

0 6 3 6 3 9 0 9

4 4 5 4 5 5 4 5

It gives 1.0571428571428572

obviously the answer is 1

13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
А когда разбор задач будет???
13 лет назад, # |
Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

не туда
13 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
а разбор задач будет