Форум Всеукраїнської інтернет-олімпіади NetOI


На форумі обговорюються лише питання, пов'язані з олімпіадою

Ви не зайшли.

#1 2015-01-31 17:54:42

BigBag
Новий користувач
Зареєстрований: 2015-01-31
Повідомлень: 3

Game2015 Проблема с тестированием

Мое решение на оффициальной проверке набрало 48 баллов, хотя то же самое решение на дорешивании набирает 60. Можете объяснить почему так происходит?

Поза форумом

 

#2 2015-01-31 17:57:39

BigBag
Новий користувач
Зареєстрований: 2015-01-31
Повідомлень: 3

Re: Game2015 Проблема с тестированием

Аналогичная проблема с задачей Azs : на официальной проверке 57 баллов, то же самое решение на дорешивании - 60.

Поза форумом

 

#3 2015-01-31 19:15:04

deadhollywoodstar
Новий користувач
Зареєстрований: 2015-01-31
Повідомлень: 1

Re: Game2015 Проблема с тестированием

+2 У меня точно такая же ситуация. Решение в результатах на проверке набрало 48. А на дорешивании набирает 60.

Поза форумом

 

#4 2015-01-31 22:01:14

SKYWARD
Новий користувач
Звідки: Україна, м. Вінниця
Зареєстрований: 2013-10-27
Повідомлень: 10

Re: Game2015 Проблема с тестированием

+3 У мене теж 2 задачі які на офіційні перевірці показують 54 та 57, а на дорішувані по 60

Поза форумом

 

#5 2015-02-01 12:18:28

Юрій Прокопець
Новий користувач
Звідки: Київ, Україна
Зареєстрований: 2015-02-01
Повідомлень: 2

Re: Game2015 Проблема с тестированием

+4 У мене те ж саме з задачею Trainers: на офіційній перевірці 42 бали, а на он-лайн перевірці 45 балів.

Поза форумом

 

#6 2015-02-01 12:33:34

pr
Новий користувач
Зареєстрований: 2015-01-19
Повідомлень: 3

Re: Game2015 Проблема с тестированием

+5 по задачі trainers те ж саме

Поза форумом

 

#7 2015-02-01 12:37:18

Жюри_Пасихов
Адміністратор
Зареєстрований: 2009-11-08
Повідомлень: 440

Re: Game2015 Проблема с тестированием

Все расхождения связаны с таймингами. Они у нас очень жесткие (сами можете убедиться). Время считаем до 0.01 с. Если ваше решение оптимально, оно по определению уложится в лимит времени (он в 2 раза больше времени авторского решения). Если нет, то  в одном случае тест может уложиться в 1с*2=2с, а в другом случае проходить этот же тест за 2.01 с., и это будет  Time Out. (не забудьте, оптимальное решение проходит за 1 с). При официальной проверке  нагрузка на систему строго единообразна, в отличие от оно-лайн, и эта нестабильность не наблюдается. (результат защитывастся, если он одинаков при 3-х разовом прохождении теста). Если ваше решение не прошло часть тестов (по времени!) в официальной проверке, а проходит в он-лайне  эти тесты - это значит, что ваше решение далеко не оптимально... Естественно - можно (как делают во многих случаях!) увеличить время на тест (с 0.02 с до 1-2 с) и все будет  "хорощо", но максимум будут набирать много правильных, но не оптимальных решений...

Поза форумом

 

#8 2015-02-01 16:05:51

учень1
Новий користувач
Зареєстрований: 2014-02-16
Повідомлень: 5

Re: Game2015 Проблема с тестированием

+6
Ну скажіть будь-ласка, що в нижче наведеному розвязку може бути не оптимально? 54 бали
var i,n,x,max: longint; s: int64;
begin
    read(n); s:=0; max:=0;
    for i:=1 to n do begin
        read(x);
        s:=s+x;
        if x>max then max:=x
    end;
    if 2*max > s
      then writeln(2*max)
      else writeln(s)
end.

Поза форумом

 

#9 2015-02-01 17:06:16

jurij
Новий користувач
Зареєстрований: 2009-01-23
Повідомлень: 40

Re: Game2015 Проблема с тестированием

+7
Аналогично
Game2015 не добрала 6 баллов
Trainers не добрала 6 баллов (проблема не стоит в оптимизации алгоритма)
Trainers:
#include "iostream.h"
int main()
{
  long long  s=0;
  long a, amax=0, i,  n;
cin >> n;
  for (i=0;i<n;i++) {cin >> a; s=s+a; if (amax<a) amax=a;}
  if (amax > s-amax) cout <<  2*amax ; else cout << s;
  return 0;
}

Відредаговано jurij (2015-02-01 17:25:08)

Поза форумом

 

#10 2015-02-01 20:31:48

Liko
Новий користувач
Зареєстрований: 2014-01-05
Повідомлень: 4

Re: Game2015 Проблема с тестированием

+8
Те ж саме з задачею trainers проходить абсолютно усі тести, тобто на 60 балів, проте у протоколі зазначено 54 бали.
Алгоритм на с++:

Код:

#include <iostream>

using namespace std;


int main()
{
    int n;                                        // Объявление переменной, которая хранит в себе количество 
                                                // учеников
    long long s = 0;                            // Сумма всех вводимых элементов.
    int max = 0;                                // Максимальный элемент из перечня вводимых значений времент
                                                // усваивания программ учениками.
    int temp;                                    // Временная переменная, необходимая для организации ввода 
                                                // значений времен усваивания учениками задач.
    //------------------------------------------------------------------------------------------------------
    // Пример входных данных: 
    // 1-й вариант:        10 8 2 15 200 25 1 12 7 10 9        Ответ: 400
    // 2-й вариант:        3 2 2 2                                Ответ: 6
    // 3-й вариант:        3 4 1 2                                Ответ: 8
    // 4-й вариант:        4 1 3 2 1                            Ответ: 7
    // 5-й вариант:        10 8 2 15 89 25 1 12 7 10 9            Ответ: 178
    // 6-й вариант:        10 8 2 15 90 25 1 12 7 10 9            Ответ: 180
    // 7-й вариант:        10 8 2 15 88 25 1 12 7 10 9            Ответ: 177
    //------------------------------------------------------------------------------------------------------
    cin >> n;                                    // Вводим количество учеников
    for (int i = 0; i < n; i++)                 // Организуем цикл ввода значений времен усваивания
    {                                            // учениками задач.
        cin >> temp;                            // Чтение очередного значения времени усваивания.
        s += temp;                                // Подсчитываем общую сумму всех времен.
        if (max < temp) max = temp;                // Находим максимальное из всех введенных времен.
    }                                            //
    if ((s - max) < max) s = 2 * max;            // Если найдется такой ученик, которому на обяснение
                                                // необходимо будет потратить больше времени, чем всем
                                                // ученикам вмести взятым, то пока один учитель будет 
                                                // объяснять этому ученику, второй учитель сможет всем 
                                                // остальным ученикам провести консультацию, и, еще 
                                                // останется время ожидания, пока первый учитель закончит 
                                                // с "тугодумом". После этого он попадет ко второму учителю,
                                                // и тому тоже придется объяснять ему задачу за время, за
                                                // которое все остальные ученики изучат задачи у первого 
                                                // учителя. Тогда, в этом случае, будем считать по 
                                                // максимальному времени, которое затратят на них учителя.
                                                // Это будет двойное время самого медленного ученика 2max.
    cout << s << endl;
    return 0;
}

Відредаговано Liko (2015-02-01 20:32:28)

Поза форумом

 

#11 2015-02-01 20:39:09

LVV
Олімпієць
Звідки: Олешки
Зареєстрований: 2010-11-19
Повідомлень: 360
Вебсайт

Re: Game2015 Проблема с тестированием

Все споры оттого, что авторские решения и тесты держатся в секрете до самого окончания олимпиады. За редким исключением отдельные авторы задач, публикуют свои алгоритмы и решения на форуме по окончании тура. Например, в трёх турах этого турнира (а это 15 задач) лишь к одной задаче был описан авторский алгоритм. Разумеется, честь и хвала авторам и организаторам этой олимпиады, но тем не менее, создаётся впечатление, что организаторы NetOI озабочены лишь выявлением нескольких лидеров турнира и абсолютно игнорируют образовательно-развивающую функцию турнира отказывая участникам в своевременном предоставлении качественных пояснений решения задач.


Вік живи - вік навчайся.

Поза форумом

 

#12 2015-02-02 00:28:02

Жюри_Пасихов
Адміністратор
Зареєстрований: 2009-11-08
Повідомлень: 440

Re: Game2015 Проблема с тестированием

Есть предложение не искать черную кошку в темной комнате. В финал участник "принесет"  1/10 от набранных в предварительных турах, т.е. максимум 60   баллов, если набрал 600. "Спорных" (?) 4-6 баллов - максимум  +-1 балл в финале,  где будет разыгрываться 500. Реально никто не пострадал. Как правило, отрывы в финале исчисляются десятками, а то и сотнями.  Ежели судьба будет решаться на уровне 1-5 баллов отрыва - обязательно вернемся к вопросу.   Протоколы троекратного  официального тестирования и все решения будут обнародованы после окончания олимпиады, как обычно.
И еще. если все же не пропало желание конкретно разобраться, куда "провалилось" 1-2 теста - письмо на olymp@olymp.vinnica.ua с вразумительной темой "Апелляция" ,  код участника, код задачи, описание проблемы.Мы в ответ - решение, которое было получено системой + лог прохождения тестов в официальной провереке. Ну, а если вдруг "барабашка" - удовлетврим апелляцию. А то из постов не ясно, кто и в большинстве случаев по какой задаче имеет притензии

Поза форумом

 

#13 2015-02-02 08:24:25

Alex_Bulany
Новий користувач
Зареєстрований: 2009-01-26
Повідомлень: 17

Re: Game2015 Проблема с тестированием

В усіх прикладах програм на С++, які наведені на цій гілці, дуже повільне введення даних (e.g.): cin >> temp;
Якщо програма тестується тричі, то висока ймовірність, що хоча б раз вона дасть на якомусь тесті TimeLimit.

Поза форумом

 

#14 2015-02-03 16:34:13

jurij
Новий користувач
Зареєстрований: 2009-01-23
Повідомлень: 40

Re: Game2015 Проблема с тестированием

Alex_Bulany написав:

В усіх прикладах програм на С++, які наведені на цій гілці, дуже повільне введення даних (e.g.): cin >> temp;
Якщо програма тестується тричі, то висока ймовірність, що хоча б раз вона дасть на якомусь тесті TimeLimit.

Да, действительно с scanf работает быстрее. Максимальное время тестирования с cin - 0.82 с ,а с scanf - 0,65 с.
Нужно будет учитывать в дальнейшем.

Поза форумом

 

Нижній колонтитул

Powered by Likt
© Copyright 2002–2009 Likt