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

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

Всем привет!

В это воскресенье, 30 марта, в 11:00 MSK, состоится Codeforces Round #239 для участников обоих дивизионов. Обратите внимание на необычное время проведения раунда.

Автором задач являюсь я, izban. Большое спасибо команде Codeforces: координатору задач Геральду Агапову (Gerald) за неоценимый вклад в подготовку задач и Марии Беловой (Delinur), которая перевела задачи на английский язык. Также спасибо Ниязу Нигматуллину (niyaznigmatul) за прорешивание задач.

Желаю всем хорошо написать раунд и с удовольствием провести выходные!

UPD: Разбалловку вы можете увидеть на странице с задачами.

UPD2: Разбор вы можете найти по этой ссылке. Обратите внимание на бонусы в некоторых задачах!

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

»
11 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится

Why is the time at 11:00 AM MSK rather than the usual 7:30 PM? Now the Americans won't be able to compete in the contest unless we stay up until 2AM or later in some parts

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

    I think it's because TopCoder SRM 614

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится +15 Проголосовать: не нравится

    For some people the time is inconvenient, for others it is convenient.

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится +5 Проголосовать: не нравится

    We have the same problem here, in Mongolia 19:30MSK is 23:30

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится -26 Проголосовать: не нравится

    I would say I'm in America, but I'm not American. Almost Americans won't care about this kind of competition, as well as Obama. In anyway, I will stay waiting and participate for this codeforces round.

  • »
    »
    11 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится +17 Проголосовать: не нравится

    In Vladivostok,usual time is inconvenient like far-east countries,I think.

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится +5 Проголосовать: не нравится

    I woke up at 2:30 am and did pretty well; it's not impossible :)

»
11 лет назад, # |
  Проголосовать: нравится -39 Проголосовать: не нравится

Если комментарий наберёт ровно 42 к концу контеста, опубликую крутую статью :)

====================================

If this comment will get exactly 42 to the end of the contest, I'll publish awesome blog entry :)

»
11 лет назад, # |
Rev. 2   Проголосовать: нравится +10 Проголосовать: не нравится

I think it coincides with March Lunchtime of Codechef :)

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

This time 's good for Asian. In Viet Nam it 's 2:00 PM, so I can go some where at Sunday night :)

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

I prefer weekend rounds. But it is probably due to NEERC this time.

»
11 лет назад, # |
Rev. 2   Проголосовать: нравится +5 Проголосовать: не нравится

#збаник_пряник

»
11 лет назад, # |
  Проголосовать: нравится -25 Проголосовать: не нравится

»
11 лет назад, # |
Rev. 2   Проголосовать: нравится +14 Проголосовать: не нравится

3:00 pm. It'll be so perfect time for Chinese participants.

»
11 лет назад, # |
Rev. 2   Проголосовать: нравится +12 Проголосовать: не нравится

Please clarify the start time of the round. The link to the start time indicates the round will start at 10 am Bulgarian time while the counter says it will start at 9. Please note tonight whole europe will switch to summer time while AFAIK Russia no longer switches the clock. Could you please clarify the time in GMT to avoid confusion?

EDIT: please note that after my comment the authors did at the start time in UTC.

  • »
    »
    11 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится +8 Проголосовать: не нравится

    Actually both times point to 10am Bulgarian time after the switch which makes sense. Still please post the time in GMT for people who do not know that in Moscow no switch to summer time will happen.

»
11 лет назад, # |
  Проголосовать: нравится -18 Проголосовать: не нравится

Жаль что с утра еще CodeChef Lunch Time, хоть он и 3 часа идет и кончиться когда раунд уже как час идет,хотелось и то,и то успеть.

Что же наверное потом вирт. напишу

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится +49 Проголосовать: не нравится

    Какой кодчиф, чувак, ты чего?! Тут сам Збань контест даёт!

    • »
      »
      »
      11 лет назад, # ^ |
        Проголосовать: нравится +24 Проголосовать: не нравится

      Поясните пожалуйста, что в этом особенного?

      • »
        »
        »
        »
        11 лет назад, # ^ |
          Проголосовать: нравится -6 Проголосовать: не нравится

        Да вы тут сговорились все, что ли?! Ты мне лучше скажи, что в этом неособенного?

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

          Может быть потому что это обычный автор раунда, ничем не отличается от остальных авторов. У него получился такой же хороший раунд как у остальных. Что тут необычного?

»
11 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится

Good Luck for Everyone

»
11 лет назад, # |
Rev. 5   Проголосовать: нравится +22 Проголосовать: не нравится

http://rghost.ru/53592076.view Это ему конечно не поможет, но всеже.

»
11 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

since only 2 minutes left for round to start, can u please post the score distribution?

»
11 лет назад, # |
Rev. 2   Проголосовать: нравится +5 Проголосовать: не нравится

Hello. Please understand me, I am new to the site and I don't know where to post and I'm not a genius when it comes to English. What is the leg of length?

  • »
    »
    11 лет назад, # ^ |
    Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

    It means side of the triangle with given length (note that we generally exclude the hypotenuse). Only consider base and height.

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

    Leg = one of the 2 shorter sides.

    Leg of length a = the length of that leg is a.

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

Sad day for hackers.

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

Кто-нибудь может объяснить, почему в этом коде DP[i] может оказаться меньше 0?

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится +14 Проголосовать: не нравится
    DP[i]=(2+pre[i]-pre[P[i]-1])%MOD;
    

    Так делать нельзя.

    Нужно так:

    DP[i]=(2+pre[i]-pre[P[i]-1] + MOD)%MOD;
    
    • »
      »
      »
      11 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      А, понял. У нас же и pre[i], и pre[P[i]-1] по модулю. Хорошо хоть, NikitaPogodin своим взломом указал, что решение неправильное :)

»
11 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится

Ограничения в задаче B Div-1 можно было бы сделать и по-жестче, существует несложный алгоритм ее решения за O(n).

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

Как решается А?

  • »
    »
    11 лет назад, # ^ |
    Rev. 4   Проголосовать: нравится +3 Проголосовать: не нравится

    Может это и не самое простое решение, но можно было расположить одну из точек в центре координат x1 = y1 = 0. Тогда a^2 = x2^2+y2^2. Перебором найдем x2 и выведем по очевидным формулам y2 и координаты 3 точки.

    Например, записав, что площадь треугольника a*b/2 = (x1*(y2-y3)+x2*(y3-y1)+x3*(y1-y2))/2, и вспомнив, что x1 = y1 = 0, получим, что a*b = x2*y3 — x3*y2 ; с другой стороны x3*x3 + y3*y3 = b*b . Находим x3,y3 .

    Если все целочисленные и не параллельны осям (то есть попарно никакие координаты 2 не равны), мы нашли ответ. O( А )

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

      А как найти координаты третьей точки? Перебрать икс внутри первого цикла?

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

        Отредактировал

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

        Можно решать аналитически — использовать тот факт,что треугольник прямоугольный, и строить нормаль.

        А можно задачу вообще полным перебором решать — переберем все точки, которые на расстоянии а от начала координат, и все точки, которые на расстоянии b. Для каждой такой пары проверим, подходит ли она.

        • »
          »
          »
          »
          »
          11 лет назад, # ^ |
          Rev. 2   Проголосовать: нравится -22 Проголосовать: не нравится

          Ну если перебор заходит, то вообще бред. Это же Div-1, можно было бы сделать хотя бы a,b < 10^6.

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

            Тогда могут быть некоторые проблемы с тем, чтобы

            Перебором найдем x2

            :)

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

            Ну почему бред, первых точек будет O(log(A)), вторых точек будет O(log(B)), значит перебор работает быстро, за O(log(A) * log(B)). Разве что, нахождение всех точек делается за O(A + B), но можно и за O(sqrt(A) + sqrt(B)).

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

              Я о том, что большинство решений работают за O(A*B).

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

                Ну ваше решение тоже за такую сложность работает, разве нет?

                • »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  11 лет назад, # ^ |
                  Rev. 3   Проголосовать: нравится -12 Проголосовать: не нравится

                  Да :D

                  Я говорил, про О(A*B), простите

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

                  Ну как же, вот этот цикл выполняется за O(A):

                  for(dx=1;dx*dx<a*a;++dx)
                  
                • »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  11 лет назад, # ^ |
                    Проголосовать: нравится +36 Проголосовать: не нравится

                  Нехорошо редактировать комментарии на которые уже ответили.

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

                Не бейте меня сильно, но у меня за О(A*B).

                С большими ограничениями — по ощущениям, это уже как-то слишком для div1 A.

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

                  Да у меня тоже за O(A * B), просто изменить до O(A + B) можно секунд за 30, просто при таких ограничениях смысла в этом не было.

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

              А откуда оценка в O(logA)?

          • »
            »
            »
            »
            »
            »
            11 лет назад, # ^ |
              Проголосовать: нравится +5 Проголосовать: не нравится

            ко-ко-ко, что-то ты разошелся, только решения за О(1), только автосркое решение должно заходить!

      • »
        »
        »
        »
        11 лет назад, # ^ |
        Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

        Если a был направлен из 0,0 по оси Y а b оттуда же по оси X, и мы немного повернули треугольник так что координаты конца b стали (xb, yb) то координаты конца a можно тупо по пропорции найти:

        xa = - a * yb / b;
        ya = a * xb / b;

        Если буквы не попутал. Но суть должна быть ясна — там в одном месте на тангенс надо поделить, в другом умножить — значит его самого и считать не надо.

»
11 лет назад, # |
  Проголосовать: нравится +17 Проголосовать: не нравится

I figured the tricky case for A but somehow couldn't hack for the entire contest :(

I have tried using Chrome and IE in Windows, Chrome and Firefox in Linux. All I saw is a spinning black circle and unresponsive "Hack" button.

What is the flash player version I should have? Or is anyone having the same problem?

»
11 лет назад, # |
  Проголосовать: нравится +28 Проголосовать: не нравится

Огромное спасибо за замечательный контест. Задачи были очень интересные.

»
11 лет назад, # |
  Проголосовать: нравится +19 Проголосовать: не нравится

Wow fast system test.

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

    wonder if this will happen again!

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

      Well, ratings don't need to be updated really fast, unlike the systest. It's the place in the ranklist that's keeping us on edge; when we know it, we can estimate the rating change, but the exact value doesn't matter so much.

      I guess people are used to superfast rating changes from TC. That's one of TC's biggest pluses (although it still doesn't balance out the Bad Idea Arena).

      Of course, taking a week just to update ratings is not OK, like some sites do.

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

        yes i guess ur right. sorry if i offended anyone.
        anyway, today ratings were updated much faster. :)

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

В системе какая-то бага. Все мои посылки на Java8, прошедшие претесты, сейчас получили рантайм на 1 тесте. P.S посмотрел статус, видимо вообще все посылки под Java8 получили рантайм на 1 тесте.

P.P.S Все пофиксили.

»
11 лет назад, # |
  Проголосовать: нравится +16 Проголосовать: не нравится

So close! 46th...

I know I can't be moved up the ranklist for no reason. But can I be moved down? Just 1 place, plz :D

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

hussh.. Problem B div1 was easier than problem A.. :(

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

Very nice problems ! Congrats to the author ! I loved problems C and D ( and finally got solved D ).

»
11 лет назад, # |
  Проголосовать: нравится +6 Проголосовать: не нравится

Today was a good day for hacks (Div 1).

»
11 лет назад, # |
  Проголосовать: нравится -35 Проголосовать: не нравится

Задача С тест 21. Гипотенуза авторского ответа не подходит к тесту. У авторов треугольник не прямоугольный.

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится +3 Проголосовать: не нравится

    575 * 575 + 85 * 85 = 337850

    (460 — 51) * (460 — 51) + (345 + 68) * (345 + 68) = 337850

    Вроде сходится, не находишь?

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

Уважаемые авторы, будет ли разбор раунда. Если да, то когда выложете? Надеюсь быть услышанным.

»
11 лет назад, # |
Rev. 2   Проголосовать: нравится +4 Проголосовать: не нравится

I mistakenly read the answer instead of output, Sorry for inconvenience.

I can not understand why is my answer wrong for this test case #33. I think that my answer is right, Any helps ??
408 765

My output is:
YES
0 0
360 192
-360 675

System test checker says "wrong answer side of a triangle is parallel to OX or OY".

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится +2 Проголосовать: не нравится

    Because it's the correct answer, not yours.

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

      Never mind. PraveenDhinwa mistook the answer for output.

      • »
        »
        »
        »
        11 лет назад, # ^ |
        Rev. 2   Проголосовать: нравится +1 Проголосовать: не нравится

        Yep, exactly. PraveenDhinwa posted the jury's answer for that test which is, of course, correct.

        • »
          »
          »
          »
          »
          11 лет назад, # ^ |
            Проголосовать: нравится +1 Проголосовать: не нравится

          Yes, I mistakenly took the jury output :(

          Actually I have considered this kind of test case while coding. I made a stupid comparison bug in Java, as this was 2nd time I was using Java.

          I made wrong comparison like the below given example:(

          Integer a = 3, b = 5; if (a == b) out.println ("matched");

          I missed the point that their references are being compared rather than values :(, Nice point to take care in future

»
11 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится

After system test fewer accepted problem A than B .. Seems that many don't figure out the third edge can't be parallel to x axis..

Most programs failed on test: 20 15

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

В задаче B на контесте каким-то образом причудилось что длина строки до ста. Так и отправил. facepalm.

»
11 лет назад, # |
  Проголосовать: нравится +16 Проголосовать: не нравится

Too many hacks on A : /. kmjp reached 63rd place without solving any problem, because he got 15 hacks on A :P. It's a bad thing where there aren't any hacks but in my opinion so big number of people with >10 hacks is also undesirable. I suppose it's a hard task to make such pretests that some solutions can be hacked but not that big number of them :P.

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

    Only problem A is tricky here, if pretests are a little bit stronger then it will be a no hack contest..

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

Div2 C: Can someone tell me why

YES
0 0
12 9
-12 16

is not a valid triangle?

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

в задаче Б див 2 долго не понимал условие. оказалось, так и не понял((( но блин претесты проходит решение, которое считает что нельзя 2 листа разрезать на 3 куска!!!

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

    Если кол-во покупных листов 'a'(для примера) меньше, чем требуемых, то берем все это кол-во 'a' в первый строке. В противном случае берем все нужные листы для 'a'. так делаем для каждой буквы, второй строки. Ну и перед этим воткнуть проверку, что любая буква второй строки, есть в первой.

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

      ну смотри как я думал. представь у тебя есть 2 листа и 3 позиции с таким же цветом. получается тебе надо разрезать эти на 2 листа на 3 куска. как это сделать? отрежем 2/3 от первого листа и положим на 1 позицию. отрежем от 2 листа 2/3 и положим на 2 позицию. останется еще одно место и 2 кусочка по 1/3. я подумал что нельзя склеивать их. и вот щас я прочитал условие и там написано, что необязательно делать одинаковые кусочки. т.е. можно было кинуть в 1 позицию целый лист. а в другие 2 позиции по половинке, например так. но мое понимание условия прошло претесты!!! т.е. в претестах было везде cnt2[i] % cnt1[i] == 0 для всех i! ну вот еще и зеленый((

»
11 лет назад, # |
Rev. 2   Проголосовать: нравится +1 Проголосовать: не нравится

Div2 C: Can someone tell me why

YES
0 0
12 9
-12 16

is not a valid triangle?

Edit: got it

6184905

»
11 лет назад, # |
  Проголосовать: нравится +24 Проголосовать: не нравится

It seems the time limit of D was too tight. Many O(N^3) solutions timed out.

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится +12 Проголосовать: не нравится

    Hi, I think it's not. All our good solutions work <= 900, even Java solutions, even with n^3 memory. I think 3 times margin is enough. Of course there are some solutions with huge constant factor that shouldn't pass.

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

      I guess the reason you making the TL so tight is to kill O(N^3 logN) solutions, but it doesn't work well: here

      Maybe it'd be better to let O(N^3 logN) pass (and if you think it is too easy, we can use it as 1500p).

    • »
      »
      »
      11 лет назад, # ^ |
        Проголосовать: нравится +8 Проголосовать: не нравится

      In POI there's a rule that constraints should be as small as they can not to let worse solution pass and there also one that making a distinction between solutions differing by a log factor is probably pointless. I guess noboby will be hurt if TL would be increased/constraints would be decreased, so their solutions can pass, because since they are in O(n^3), they deserve to. I'm a follower of an idea that every two solutions in the same complexity are equivalent :P.

»
11 лет назад, # |
Rev. 5   Проголосовать: нравится +45 Проголосовать: не нравится

Look at this page

The last rated participation in this contest siIlycross

sillycross and tourist both won IOI gold medals...

I wondered what siIlycross was doing...

Failed on all the problems, even tried to hack tourist for many times on problem A...

But finally, I found that siIlycross and sillycross were different people > _ <

It's hard to distinguish “I”(upper i) and "l"(lower L) sometimes on Codeforces...

  • »
    »
    11 лет назад, # ^ |
    Rev. 3   Проголосовать: нравится 0 Проголосовать: не нравится

    wonder how siIlycross managed to stay Master despite finishing last! :D

    • »
      »
      »
      11 лет назад, # ^ |
        Проголосовать: нравится +1 Проголосовать: не нравится

      It seems that there is some cap (different for different users), and your raiting can't decrease by more than ~100 points — does not matter how bad your performance is.

      For example, look at TMandzu or Zlobober.

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

        hmm, makes sense.
        i guess the maximum increase/decrease of rating depends on number of contests user has participated before current round. the higher this number, the smaller the "cap" by which rating can change.

»
11 лет назад, # |
  Проголосовать: нравится -22 Проголосовать: не нравится

В задаче о прямоугольном треугольнике каким определением параллельных прямых пользовались составители тестов? В используемых в средней школе учебниках (авторы Атанасян или Погорелов) прямая не считается параллельной самой себе. Логично считать, что две вершины искомого треугольника могут находится на одной из координатных осей.

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится +5 Проголосовать: не нравится

    прямая не считается параллельной самой себе.

    Т.е. если две прямые совпадают, то они уже не параллельны? Боюсь из-за вашего среднешкольного учебника придётся переписывать кучу научных трудов начиная с Евклидовых времён.

    Да и если головой думать:

    Логично считать, что две вершины искомого треугольника могут находится на одной из координатных осей.

    Как задача с таким неостроумным решением могла бы попасть выше чем в Div2-A?

    • »
      »
      »
      11 лет назад, # ^ |
        Проголосовать: нравится +12 Проголосовать: не нравится
      Т.е. если две прямые совпадают, то они уже не параллельны?

      Это довольно циркулярный аргумент.

      • »
        »
        »
        »
        11 лет назад, # ^ |
          Проголосовать: нравится +5 Проголосовать: не нравится

        Что значит "циркулярный"? :)

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

        1 1
        1 4
        1 5

        Очевидно две его стороны паралельны осям координат. Сдвинем его на 1 по X или на 1 по Y — они всё равно остаются паралельны.

        Однако если мы сдвинем его на -1 по X и на -1 по Y, то его стороны совпадут с осями!

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

        • »
          »
          »
          »
          »
          11 лет назад, # ^ |
            Проголосовать: нравится +15 Проголосовать: не нравится

          Я согласен, что нелогично. Но вряд ли аргументом можно считать «если по вашему определению мое определение не работает, то ваше определение неправильно».

          • »
            »
            »
            »
            »
            »
            11 лет назад, # ^ |
            Rev. 3   Проголосовать: нравится +5 Проголосовать: не нравится

            Хорошо, перейдём от защиты в нападение — пущай автор вопроса запостит определение паралельных прямых из его учебника — а мы его обсудим.

            Я определений которые не допускали бы совпадающих прямых не видел. В том числе в http://en.wikipedia.org/wiki/Parallel_(geometry) .

            UPD: Кроме того если совпадающие прямые считать не паралельными, то транзитивность паралельности пропадает. Наверное в свете философии это может иметь какую-то ценность, но в геометрии вряд ли.

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

              Ну а если PAG покажет такое определение, что вы скажете?

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

                Ну а если я приведу источник в котором утверждается что источник используемый PAG не заслуживает доверия, что вы скажете? :)

                • »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  11 лет назад, # ^ |
                    Проголосовать: нравится +12 Проголосовать: не нравится

                  Вопрос на вопрос не ответ на вопрос. В любом случае, я уверен, что такой источник не заслуживает доверия. Однако не вина человека, что определение, которое ему учили, отличается от общепринятого.

                • »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  »
                  11 лет назад, # ^ |
                  Rev. 2   Проголосовать: нравится +3 Проголосовать: не нравится
                  ============================================

                  Я и не говорю что человек виноват. Хотя учебника мы его так и не видели. Да и интернеты нынче есть — можно не слишком слепо учебникам следовать.

                  Но что предлагается-то? Обвинить автора контекста в том что кого-то из участников учили "не так"? Объявить раунд нерейтинговым (по весьма сомнительному поводу)? Требовать от администрации CodeForces всегда уточнять подобные случаи — но их слишком много — в задаче например не говорилось о том что геометрия Евклидова, не уточнялось что речь идёт о декартовой системе координат — а кроме того можно было задаться вопросом, выводить ли слова "YES" и "NO" с использованием кириллических букв E и O...

                  Это уже утрировано конечно, но действительно почти в каждой задаче есть место "общепринятым" понятиям — действительно, порой оказывается что кто-то использовал нестандартные трактовки (помню и сам прокололся с деревьями состоящими из одного только корня) — но что ж тут поделать.

            • »
              »
              »
              »
              »
              »
              »
              11 лет назад, # ^ |
                Проголосовать: нравится +8 Проголосовать: не нравится

              Я уже указал источники.На пример в учебнике Атанасяна :"Две прямые на плоскости называются параллельными, если они не пересекаются" (п.24, изд.2009г) До этого в п.1 говорится о том, что "две прямые" — эти прямые различны. В предыдущей концепции школьной геометрии(линия учебников Маркушевича) прямая считалась параллельной себе. При этом была сноска о том, что это отличие от предыдущих учебников сделано для того, чтобы упростить формулировку и доказательство некоторых теорем на пример "Через каждую точку плоскости можно повести единственную прямую параллельную данной" или "Центральносимметричные прямые параллельны". Этот вопрос из ряда: "Ноль — натуральное число или нет?", "Единица — простое число или нет". Каждый автор соответствующего курса выбирает то определение, какое удобнее с его точки зрения для изложения. Конкретно по этой задаче я имел в виду, что ДВЕ вершины могут находится на какой-то оси, а не то, что вершина прямого угла совпадает с началом координат.

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

Please help with my Div1 A submission 6179184.On test 34,on my computer,my solution can give the correct output:

YES
0 0
75 180
432 -180

but on CF it gives NO.

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

Что так массово писали в А, что хорошо ломается и при этом проходит претесты?

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится +17 Проголосовать: не нравится

    У меня гипотенуза была параллельна оси.

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится +8 Проголосовать: не нравится

    Скорее всего, что гипотенуза может быть параллельна осям. И посмотрел пару решений на плюсах в своей комнате, падали если использовали sqrt.

    • »
      »
      »
      11 лет назад, # ^ |
        Проголосовать: нравится -10 Проголосовать: не нравится

      Использовал sqrt, не упало =(

      ЧЯДНТ?

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

        Видимо умеешь готовить sqrt :)

        Я вот в себе не уверен и чтоб не пофейлиться в целых числах простенько всё сосчитал :D

        UPD: вру, у меня нашёлся один sqrt, но его результат я заботливо скорректировал ;)

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

        ну тогда незнаю. Вроде у тех у кого смотрел по финальной табличке, и кто учитывал параллельность гипотенузы, и использовали sqrt упало. У некоторых нет.

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

Интересно: несколько раз переписывая Div.2 C, под конец забыл добавить главное условие — проверку параллельности координатным осям. Тем не менее, удивительно, но решение прошло претесты. (на системном, естественно, выдало ошибку)

»
11 лет назад, # |
  Проголосовать: нравится +30 Проголосовать: не нравится

Я понимаю, что на вкус и цвет..., но, как по мне, если красный участник может потратить на решение матча 15-20 минут, после этого уйти — и все равно получить плюс, то баланс проблемсета — оставляет желать лучшего.

У меня обычно TopCoder проходит по такой схеме, "есть взлом — даже красный идет в большой плюс, быстрая 250 без взлома — в небольшой плюс, медленная 250 — в минус". И весь раунд сводится к первым 10 минутам:) А на СF уже привык к тому, что баланса ощутимо больше.

Зато такие матчи удобны для тех, у кого нету времени сидеть до конца)

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

Пожалуйста, кто-нибудь может объяснить пример

999 1000

Моя программа выводит:

YES
0 0
324 945
960 -280

Правильный ответ:

NO

Почему так ведь:

999 = 324 * 324 + 945 * 945
      104976    + 893025 = 998001
sqrt(998001) = 999
1000 = 960 * 960 + 280 * 280
       921600    + 78400 = 1000000
sqrt(1000000) = 1000 

Если где-то ошибся, поправьте, пожалуйста!

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

    Квадрат длины гипотенузы должен быть 1000^2 + 999^2 = 1998001. У вас же квадрат третьей стороны (960-324)^2+(945-(-280))^2 = 1905121. Он не прямоугольный, очевидно.

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

      Спасибо большое! А я долго думал над ней во время контеста))

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

how to solve problem C in div1

  • »
    »
    11 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится +38 Проголосовать: не нравится

    I decompose a binomial coefficient for i > l into

    Take an array A[] whose j-th element is the k - j-th term of this sum (if i = l, then A[k] = 1 and A[j < k] = 0). When you increment i, A transforms into the array of its own suffix sums, because

    where the first term is A[j] of the original A and the second is A[j + 1] after the transformation, which is the recurrence describing suffix sums.

    This transformation is also additive — performing it on the sum of queries gives the same result as performing it on each of those queries separately and then summing up the results. That means you can use a sweepline with adding new queries (A[k] +  + ) and removing them (you need to subtract bin. coefficients from the corresponding terms of A).

    UPD: The exact formulas were wrong, also it wasn't prefix, but suffix sums. The confusion came about because I changed the indexing from the one used in my solution (6186385). Nevertheless, the original decomposition is unchanged.

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

      This is a beautiful solution!

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

      Good solution. But i still dont get how to save queries in each element and find the current element?

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

        Find the current element: sum up the terms of array A — it's the same as computing the sum above.

        Adding queries is trivial — just increment A[k] for the k of that query. When deleting queries, you'd need to subtract from A the values that would be there if you applied the same algorithm on only that one query — those are the bin. coefficients in the sum.

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

может быть что-то не так с чекером ? код 6188589

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

it's very Thriller contest 4 me.............

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

It was a nice contest. :) BTW can someone describe how to solve div-1 C? Edit : Sorry, I missed the Xellos comment.

»
11 лет назад, # |
  Проголосовать: нравится +22 Проголосовать: не нравится

I got the email announcing this contest during (or after) the contest!

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

    i still havent got any email. hopefully i'll get it before the start of next contest (which is now less than 48 hours)! :D

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

Problem Div1 — A, Triangle.

For input 5 5

My program gives the following output.

YES
2496 2497
2500 2500
2497 2496

I got Wrong answer. But two lengths of these three points are 5 and 5. Could anyone help me to find the place where I am doing mistake?

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

div1B не SpaceChem'ом ли навеяна? =)