Всем привет и добро пожаловать на Codeforces Beta Round #9!
Если не случится ничего страшного, то он начнётся в 15:00 по московскому времени.
Сегодняшним автором задач буду я. :) Задачи старался сделать легкочитаемыми и забавными. Огромное спасибо нужно сказать Мише Мирзаянову (за выбор задач к контесту и организацию соревнования), Игорю Кудряшову (за тщательную проверку авторских решений и написание генераторов тестов), Диме Матову (за исправление всего, что можно было исправить :)) и, конечно же, Юле Сатушиной (за прекрасный перевод условий).
Напоминаю, что если у вас возникают вопросы по задачам, то лучше всего использовать веб-интерфейс их посылки со страницы задач.
Надеюсь, что контест Вам понравится, уважаемые участники! Прошу оставлять здесь свои предложения и пожелания.
Удачи!
Кстати, с Днём Рождения! Удачных контестов, в качестве как автора, так и участника!
Спасибо за контест.
Жду разбора :)
С Днем Рождения :)
Хорошо бы иметь какой-нибудь способ довести сообщение об этом до участников, причём так, чтобы было невозможно его не заметить. А то от “этого вашего Web 2.0” пока самая заметная часть — это тормоза при загрузке страницы. С другой стороны, непонятно, как это делать. Если у участника открыта вкладка “Основное” (которая, кстати, в строке выбора вкладки почему-то называется “Задачи”), то, наверно, можно там сделать всплывающее окошко об этом. А вот если открыты только сами задачи, каждая в своём табе — не всплывать же окошку в каждом табе?..
Замечание по судейству насчёт реджаджа задачи C:
Если в мониторе значительное время провисел плюс, и до конца контеста осталось не очень много времени, обычно считается неправильным его снимать. Здесь, насколько я понимаю, ложные плюсы висели не более получаса из двух, и после реджаджа оставалась примерно половина контеста... но усугубляющее обстоятельство в том, что о реджадже ещё надо было узнать. Не то чтобы я выступал против решения жюри по реджаджу. Но хотелось бы узнать на будущее, насколько позиция жюри CodeForces соответствует описанной мной выше.
я надеюсь, что в скором времени появится огромное всплывающее окошко "произведён режадж" :)
главное, чтобы не было участников, которые получили АС, а о режадже узнали после контеста или за 10 минут до его окончания
"It is known that Yakko and Wakko are true gentlemen, that's why if they
bothhave the same amount of points with Dot, they will let Dot win."hmm... it's my mistake, I'm sorry
you are right, thanks
... 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 :'(
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.
Почему-то не работатет код по считыванию 64-битной переменной(Превышен предел времени на тесте 1):
scanf("%lld",&a);
Поменял на cin>>a избавился от таймлимита. Странно
Кстати, хорошо бы конкретные версии компилятора (и, возможно, такие тонкости) оказались описаны в понятном месте. Даже в давнем посте Майка Мирзаянова про то, какие компиляторы используются (а его ещё найти надо) конкретных версий нет.
На CodeForces используется MinGW GCC. Это порт GCC под винду. Все имеющиеся версии используют для ввода-вывода виндовую библиотеку (кажется, msvcrt.dll). Поэтому под MinGW нужно писать "%I64d", чтобы осуществлять ввод/вывод 64-битных целых чисел.
А чо там за тест №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;
}
Например такой тест:
3 3 1
0 1 4
4 4
Время действительно одинаковое, а с 3й остановки бежать ближе, чем со второй.
пасиб )
#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-тый тест ))
{
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.