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

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

Всем привет и добро пожаловать на Codeforces Beta Round #9!

Если не случится ничего страшного, то он начнётся в 15:00 по московскому времени.

Сегодняшним автором задач буду я. :) Задачи старался сделать легкочитаемыми и забавными. Огромное спасибо нужно сказать Мише Мирзаянову (за выбор задач к контесту и организацию соревнования), Игорю Кудряшову (за тщательную проверку авторских решений и написание генераторов тестов), Диме Матову (за исправление всего, что можно было исправить :)) и, конечно же, Юле Сатушиной (за прекрасный перевод условий).

Напоминаю, что если у вас возникают вопросы по задачам, то лучше всего использовать веб-интерфейс их посылки со страницы задач.

Надеюсь, что контест Вам понравится, уважаемые участники! Прошу оставлять здесь свои предложения и пожелания.

Удачи!

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

14 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
Удачи и лёгкого АС всем участникам! :)
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
I can't submit: I need to be registered for the contest (the message says).

AFAIK, this contest is not a TopCoder contest where registration is needed to assign rooms. 

I fail to see why do we need to register before the contest?
14 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
Весёлые условия.

Кстати, с Днём Рождения! Удачных контестов, в качестве как автора, так и участника!
14 лет назад, # |
  Проголосовать: нравится +2 Проголосовать: не нравится
Thank you Alex_KPR! Your help is very important for Codeforces. Happy Birthday!
14 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится

Спасибо за контест.

Жду разбора :)

С Днем Рождения :)

14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Техническое замечание насчёт реджаджа задачи C:
Хорошо бы иметь какой-нибудь способ довести сообщение об этом до участников, причём так, чтобы было невозможно его не заметить. А то от “этого вашего Web 2.0” пока самая заметная часть — это тормоза при загрузке страницы. С другой стороны, непонятно, как это делать. Если у участника открыта вкладка “Основное” (которая, кстати, в строке выбора вкладки почему-то называется “Задачи”), то, наверно, можно там сделать всплывающее окошко об этом. А вот если открыты только сами задачи, каждая в своём табе — не всплывать же окошку в каждом табе?..

Замечание по судейству насчёт реджаджа задачи C:
Если в мониторе значительное время провисел плюс, и до конца контеста осталось не очень много времени, обычно считается неправильным его снимать. Здесь, насколько я понимаю, ложные плюсы висели не более получаса из двух, и после реджаджа оставалась примерно половина контеста... но усугубляющее обстоятельство в том, что о реджадже ещё надо было узнать. Не то чтобы я выступал против решения жюри по реджаджу. Но хотелось бы узнать на будущее, насколько позиция жюри CodeForces соответствует описанной мной выше.
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Кстати, согласен насчет задачи C. Первоначально было AC. И только потом, случайно заметил, что мое решение перетестили и оно не прошло весь набор тестов. Хотелось бы в дальнейшем видеть сообщение о том, что по некой задаче совершено перетестирование.
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    я надеюсь, что в скором времени появится огромное всплывающее окошко "произведён режадж" :)

    главное, чтобы не было участников, которые получили АС, а о режадже узнали после контеста или за 10 минут до его окончания

14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
интересно услышать Ваше мнение об условиях задач, тестах, балансе контеста и сложности задач
14 лет назад, # |
  Проголосовать: нравится +6 Проголосовать: не нравится
Problem A. Die Roll
"It is known that Yakko and Wakko are true gentlemen, that's why if they both have the same amount of points with Dot, they will let Dot win."
The both word is unnecessary and injurious.
But maybe I'm wrong.
  • 14 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится

    hmm... it's my mistake, I'm sorry

    you are right, thanks

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

      ... it's my fault :(( I must have read the Russian statement not carefully enough. I thought the males should have the same amount of points at the same time.

      So, Alex, you shouldn't have thanked me :'(

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

        Your mistake is a very small epsilon of countable, but very big piece of goods You made.

        This problem was the most AC'eeded in the contest. Don't punish yourself too much.

      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        That's OK, I see that almost everyone figured it out eventually ;)
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Почему-то не работатет код по считыванию 64-битной переменной(Превышен предел времени на тесте 1):

scanf("%lld",&a);

Поменял на cin>>a избавился от таймлимита. Странно

  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    попробуй scanf("%i64d",&a);
  • 14 лет назад, # ^ |
      Проголосовать: нравится +1 Проголосовать: не нравится
    (кажется, msvcrt.dll). ПоэтомуНа CodeForces используется MinGW GCC. Это порт GCC под винду. Все имеющиеся версии используют для ввода-вывода виндовую библиотеку. Поэтому под MinGW нужно писать "%I64d", чтобы осуществлять ввод/вывод 64-битных целых чисел.

    Кстати, хорошо бы конкретные версии компилятора (и, возможно, такие тонкости) оказались описаны в понятном месте. Даже в давнем посте Майка Мирзаянова про то, какие компиляторы используются (а его ещё найти надо) конкретных версий нет.
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      (вот нэнавижу, как firefox реагирует на появление полоски скроллинга... имелось в виду в первом абзаце следующее:)

      На CodeForces используется MinGW GCC. Это порт GCC под винду. Все имеющиеся версии используют для ввода-вывода виндовую библиотеку (кажется, msvcrt.dll). Поэтому под MinGW нужно писать "%I64d", чтобы осуществлять ввод/вывод 64-битных целых чисел.
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

А чо там за тест №23 что мой код не проходит(Задача В)?


#include <stdio.h>

#include <math.h>

int main(){

double vs,vh,a[1000],x,y;
int i,index=0,n;
double min,b[1000];
scanf("%d%lf%lf",&n,&vh,&vs);
for(i=0;i<n;++i){
scanf("%lf",&a[i]);
}
scanf("%lf%lf",&x,&y);
for(i=1;i<n;++i){
b[i-1]=(sqrt((a[i]-x)*(a[i]-x)+y*y))/vs+(a[i])/vh;
}
min=b[0];
for(i=0;i<n-1;++i){
if(min>b[i]){
min=b[i];
index=i;
}
}
printf("%d",index+2);  
return 0;
}
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    > Если таких остановок несколько, то выберите ту, от которой расстояние до университета наименьшее.
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    Например такой тест:

    3 3 1
    0 1 4
    4 4

    Время действительно одинаковое, а с 3й остановки бежать ближе, чем со второй.

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

      пасиб )

      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        #include <stdio.h>
        #include <math.h>
        int main(){
        double vs,vh,a[1000],x,y,dist=0;
        int i,index=0,n;
        double min,b[1000];
        scanf("%d%lf%lf",&n,&vh,&vs);
        for(i=0;i<n;++i){
        scanf("%lf",&a[i]);
        }
        scanf("%lf%lf",&x,&y);
        for(i=1;i<n;++i){
        b[i-1]=(sqrt((a[i]-x)*(a[i]-x)+y*y))/vs+(a[i])/vh;
        }
        min=b[0];
        dist=sqrt((a[1]-x)*(a[1]-x)+y*y)/vs+(a[1])/vh;
        for(i=0;i<n-1;++i){
        if(min>b[i]){
        min=b[i];
        dist=sqrt((a[i+1]-x)*(a[i+1]-x)+y*y);
        index=i;
        }
        }
        for(i=0;i<n-1;++i){
        if(fabs(min-b[i])<0.01 && index!=i){
        if(dist>sqrt((a[i+1]-x)*(a[i+1]-x)+y*y)){
        index=i;
        }
        }
        }
        printf("%d",index+2);
        return 0;

        }

        Ну а теперь 19-тый тест ))

        • 14 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          for(i=0;i<n-1;++i)
          {
          if(fabs(min-b[i])<0.0000000001 && index!=i)
          {
          if(dist>sqrt((a[i+1]-x)*(a[i+1]-x)+y*y))
          {
          index=i;
          dist = sqrt((a[i+1]-x)*(a[i+1]-x)+y*y);
          }
          }
          }

          Даёт правильный ответ. А программу действительно можно упростить. Но лишь после получения AC.

14 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится
I've just noticed that an invitation email was sent to me although I'm not eligible for this contest.
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Can some one explain me how to solve the fourth problem? I am confused.