Автор Тема: Олимпиада "Московский учитель 2016"  (Прочитано 17707 раз)

Оффлайн Dmytro

  • Мастер
  • ***
  • Сообщений: 1 001
Re: Олимпиада "Московский учитель 2016"
« Ответ #30 : 25.11.2016 22:39:46 »
Что имели в виду под "соответствует" - это не так однозначно. Кроме того, там есть явная фраза
Цитировать
размер используемой памяти зависит от количества точек
в предлагаемом решении этого я не увидел.
Ну я и говорю, что значит 4. Раз этот критерий откидываем никаких других критериев для снижения не выполнено
А я так понимаю, что зависимость используемой памяти от объема вводимых данных - это обязательный критерий для оценки в 3 балла, который не был выполнен. Т.е., я бы сказал, что эксперты правы в оценке, но неправильно объяснили ответ.

Оффлайн Dmytro

  • Мастер
  • ***
  • Сообщений: 1 001
Re: Олимпиада "Московский учитель 2016"
« Ответ #31 : 25.11.2016 22:48:40 »
Получается тогда 4 балла. Если критерий не подходит значит снижения нет
Если критерий на 3 не подходит, то это не обязательно 4. Возможно, ведь, и 2. Я понял критерии оценки так (упрощенно, конечно):
4 - решение без сохранения всех данных
3 - решение с сохранением данных в массив, длинна которого зависит от N (что влияет на выделяемую память)

Получается, что решение не соответствует ни одному из этих вариантов
« Последнее редактирование: 25.11.2016 22:50:26 от Dmytro »

Оффлайн tema

  • alt linux team
  • ***
  • Сообщений: 2 073
    • Email
Re: Олимпиада "Московский учитель 2016"
« Ответ #32 : 25.11.2016 22:51:41 »
Что имели в виду под "соответствует" - это не так однозначно. Кроме того, там есть явная фраза
Цитировать
размер используемой памяти зависит от количества точек
в предлагаемом решении этого я не увидел.
Ну я и говорю, что значит 4. Раз этот критерий откидываем никаких других критериев для снижения не выполнено
А я так понимаю, что зависимость используемой памяти от объема вводимых данных - это обязательный критерий для оценки в 3 балла, который не был выполнен. Т.е., я бы сказал, что эксперты правы в оценке, но неправильно объяснили ответ.
Да, 4 балла тоже не попадает, т.к. массив, а в критерии на 4 про массив чётко сказано.
Но объявление статического массива в 1000 тоже нельзя считать критерием снижения, т.к. он попадает под список допустимых ошибок:
Цитировать
....не описана или неверно описана переменная....
А таких ошибок на 3 балла можно допустить аж 3.
Вот из списка так же:
Цитировать
...применяется операция, недопустимая для соответвующего типа данных...
Комбинируя эти две допустимые ошибки можно спокойно динамический массив описать. А если учесть:
Цитировать
(если одна и та же ошибка встречается несколько раз, то это считается за одну ошибку).
То вообще всё в идеале  ;-)

Оффлайн Dmytro

  • Мастер
  • ***
  • Сообщений: 1 001
Re: Олимпиада "Московский учитель 2016"
« Ответ #33 : 25.11.2016 22:55:25 »
Если списать на "допустимые ошибки", то можно поставить 3. Но для этого нужно найти хоть 1 строку в программном коде, которая показывает зависимость выделяемой памяти от числа N, Я такого в коде не нашел. Сейчас еще раз перечитаю.

Update: Перечитал. количество элементов массива будет зависеть от количества точек, лежащих на биссектрисах, но не от числа точек в условии задачи. Т.е., если бы ученик сначала вносил все точки в массив, а потом проверял их на принадлежность к биссектрисе, то это бы более соответствовало критерию на 3. Хотя, решение ученика более производительно, чем буквальный критерий оценки на 3.

Но мою реплику о том, что память под массив в решении ученика выделяется всегда одинаковая и не зависит от  N это не опровергает.
« Последнее редактирование: 25.11.2016 23:13:10 от Dmytro »

Оффлайн tema

  • alt linux team
  • ***
  • Сообщений: 2 073
    • Email
Re: Олимпиада "Московский учитель 2016"
« Ответ #34 : 25.11.2016 23:08:11 »
Если списать на "допустимые ошибки", то можно поставить 3. Но для этого нужно найти хоть 1 строку в программном коде, которая показывает зависимость выделяемой памяти от числа N, Я такого в коде не нашел. Сейчас еще раз перечитаю.
Да пожалуйста:
    var
    N, ND1, ND2: integer;
    D1, D2: array of integer; //Ошибка неверного описания переменной
    Max1, Max2: integer; S: integer;
    i, x, y: integer;
    begin
    readln(N);
    ND1:=0; ND2:=0;
    for i:=1 to N do begin
    readln(x,y);
    if (x=y) then begin
    ND1:=ND1+1;
SetLength(D1,ND1+1);
    D1[ND1]:=abs(x);//Ошибка недопустимой операции
    end;
    if (x=-y) then begin
    ND2:=ND2+1;
SetLength(D2,ND2+1);
    D2[ND2]:=abs(y);//Ошибка недопустимой операции (повтор)
    end;
    end;
    Max1:=0; Max2:=0;
    for i:=1 to ND1 do begin
    if (D1[i] > Max1) then Max1:= D1[i];
    end;
    for i:=1 to ND2 do begin
    if (D2[i] > Max2) then Max2:= D2[i];
    end;
    S:=Max1*Max2;
    if (S=0) then writeln('Треугольник не существует')
    else writeln(S)
    end.
« Последнее редактирование: 25.11.2016 23:10:36 от tema »

Оффлайн Dmytro

  • Мастер
  • ***
  • Сообщений: 1 001
Re: Олимпиада "Московский учитель 2016"
« Ответ #35 : 25.11.2016 23:12:23 »
Прочитайте в моем предыдущем посте после "Update"

В общем, получается, что есть внутреннее противоречие в критерии оценки: с одной стороны, требуется зависимость выделения памяти от N, а с другой - в случае с массивом это можно списать на ошибку при объявлении переменной. И окончательный вердикт будет зависеть от главного судьи.

Оффлайн tema

  • alt linux team
  • ***
  • Сообщений: 2 073
    • Email
Re: Олимпиада "Московский учитель 2016"
« Ответ #36 : 25.11.2016 23:18:51 »
Значит ждём  :-)

Оффлайн Dmytro

  • Мастер
  • ***
  • Сообщений: 1 001
Re: Олимпиада "Московский учитель 2016"
« Ответ #37 : 25.11.2016 23:23:44 »
В вашем варианте кода объем выделяемой памяти зависит от количества точек на биссектрисах, которое может быть меньше или равно N. Т.е. прямой зависимости от N, описанной в критерии на 3, все равно не получается. Этот вариант оценки прокатил бы, если бы запись в массив стояла до проверки принадлежности к биссектрисе.

В любом случае, болею за Вас.

Оффлайн tema

  • alt linux team
  • ***
  • Сообщений: 2 073
    • Email
Re: Олимпиада "Московский учитель 2016"
« Ответ #38 : 25.11.2016 23:26:40 »
В вашем варианте кода объем выделяемой памяти зависит от количества точек на биссектрисах, которое может быть меньше или равно N. Т.е. прямой зависимости от N, описанной в критерии на 3, все равно не получается. Этот вариант оценки прокатил бы, если бы запись в массив стояла до проверки принадлежности к биссектрисе.

В любом случае, болею за Вас.
Спасибо.  :-)
Тогда на 3 балла просто нет критерия. Если сохранить ВСЕ данные в массив размера N, то это чётко критерий на 2 балла как сохранение всех данных в массив
« Последнее редактирование: 25.11.2016 23:34:05 от tema »

Оффлайн tema

  • alt linux team
  • ***
  • Сообщений: 2 073
    • Email
Re: Олимпиада "Московский учитель 2016"
« Ответ #39 : 25.11.2016 23:28:55 »
Тогда так:
    var
    N, ND1, ND2: integer;
    D1, D2: array of integer; //Ошибка неверного описания переменной (сейчас исправлено)
    Max1, Max2: integer; S: integer;
    i, x, y: integer;
    begin
    readln(N);
SetLength(D1,N);
SetLength(D2,N);
    ND1:=0; ND2:=0;
    for i:=1 to N do begin
    readln(x,y);
    if (x=y) then begin
    ND1:=ND1+1;
    D1[ND1]:=abs(x);//Ошибка недопустимой операции
    end;
    if (x=-y) then begin
    ND2:=ND2+1;
    D2[ND2]:=abs(y);//Ошибка недопустимой операции (повтор)
    end;
    end;
    Max1:=0; Max2:=0;
    for i:=1 to ND1 do begin
    if (D1[i] > Max1) then Max1:= D1[i];//Ошибка недопустимой операции (повтор)
    end;
    for i:=1 to ND2 do begin
    if (D2[i] > Max2) then Max2:= D2[i];//Ошибка недопустимой операции (повтор)
    end;
    S:=Max1*Max2;
    if (S=0) then writeln('Треугольник не существует')
    else writeln(S)
    end.
Тут массив размера N и данные, в общем случае, туда сохраняются не все. Идеально на 3 балла прям до буковки  :-)
И программа соответствует, учитывая допустимые ошибки!
« Последнее редактирование: 25.11.2016 23:38:58 от tema »

Оффлайн Dmytro

  • Мастер
  • ***
  • Сообщений: 1 001
Re: Олимпиада "Московский учитель 2016"
« Ответ #40 : 25.11.2016 23:29:38 »
Можно попробовать обсудить с председателем некорректность и неоднозначность критерия на 3 балла.

Оффлайн tema

  • alt linux team
  • ***
  • Сообщений: 2 073
    • Email
Re: Олимпиада "Московский учитель 2016"
« Ответ #41 : 25.11.2016 23:30:40 »
Можно попробовать обсудить с председателем некорректность и неоднозначность критерия на 3 балла.
До него сначала добраться надо  :-(

Оффлайн Dmytro

  • Мастер
  • ***
  • Сообщений: 1 001
Re: Олимпиада "Московский учитель 2016"
« Ответ #42 : 25.11.2016 23:35:26 »
Тогда так:
Вот так, наверное, соответствует критерию на 3. Хотя, сами понимаете,  что предыдущий Ваш вариант по производительности лучше этого.

Оффлайн tema

  • alt linux team
  • ***
  • Сообщений: 2 073
    • Email
Re: Олимпиада "Московский учитель 2016"
« Ответ #43 : 25.11.2016 23:35:55 »
Тогда так:
Вот так, наверное, соответствует критерию на 3. Хотя, сами понимаете,  что предыдущий Ваш вариант по производительности лучше этого.
Само собой, но тож ыксперды  ;-D

Оффлайн Dmytro

  • Мастер
  • ***
  • Сообщений: 1 001
Re: Олимпиада "Московский учитель 2016"
« Ответ #44 : 25.11.2016 23:42:04 »
Само собой, но тож ыксперды  ;-D
у меня мама любит одну историю рассказывать... В ее студенческие годы была в воронежском пединституте преподавательница, выпускница московского вуза, однокурсница нескольких авторов учебников по педагогике. Вот эта самая преподавательница на занятиях рассказывала студентам, что хорошо этих авторов знает, и что они плохо представляют, что такое дети, потому что ни в школе не работали, ни семью не создали.

Да, авторы - мужики-холостяки.
« Последнее редактирование: 25.11.2016 23:45:11 от Dmytro »