Олимпиада "Московский учитель 2016"

Любые обсуждения, не нарушающие правил форума.

Модератор: Модераторы

Олимпиада "Московский учитель 2016"

Сообщение tema » 23.11.2016 01:19:54

Имел возможность поучаствовать в сабжевой олимпиаде. На самом деле очень интересно оказалось. Но вот настал день расплаты!
Выставлены оценки.
Т.к. всё решал ночью, накосячил по-глупому в некоторых заданиях. С этим пришлось вздохнуть и смириться. Но нашлись задания, от проверки которых я в шоке... Потом, если интересно будет расскажу о всех, но сейчас я хочу описать тут только одну конкретную, реальную проблему...
Я уже просто убился об споры с оргкомитетом, поэтому выношу вопрос сюда, может кто-то сможет мне указать, что именно я не увидел и пойму, что действительно неправ...
Вкратце опишу задачу по которой целый день идёт переписка и я уже почти в тупике (задача 3.3):

Ученик написал программу по заданию из ЕГЭ. Моя задача проверить как он решил и выставить оценку, согласно выданным мне критериям оценивания задачи. Цитировать полностью не буду, просто приложу файлы. Тут напишу только что у ученика программа написана правильно, но не оптимально. Он сохраняет вводимые данные в массиве, а этого можно не делать, т.к. задача в целом состоит всего лишь в том, чтобы найти максимум из вводимых данных. Это является поводом для снижения оценки, т.к. это так прямо и написано в выданном мне критерии на 3 балла:
Не выполнены условия, позволяющие поставить 4 балла, при этом программа работает верно, время работы линейно зависит от N, но размер используемой памяти зависит от количества точек. Например, входные данные запоминаются в массиве или другой структуре данных, размер которой соответствует числу N.

Код: Выделить всё
var
N, ND1, ND2: integer;
D1, D2: array [1..1000] 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;
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.

Я, соответственно, поставил 3 балла.
Вот такой ответ дал я:
Не выполнено условие, позволяющее поставить 4 балла: входные данные сохраняются в массиве. В остальном, все условия для получения 3 баллов выполнены. Программа работает верно. Вложенных циклов нет — программа линейно зависит от N.
1. Максимумы инициализированы.
2. Абсолютные значения применяются правильно.
3. Ошибок в сравнении нет.
4. Использования вещественных вычислений нет.
5. Случай отсутствия требуемого треугольника обрабатывается правильно.
6. Нет синтаксических ошибок.
Из замечаний: в условии задачи сказано указать язык программирования и его версию. Данную информацию экзаменуемый не указал.


Полностью задание 3.3 приложил как файл zadanie.pdf. Когда выставлены оценки, нам выданы критерии как нас оценивали. Критерий оценивания приложил как kriterii.pdf. Описываю я сейчас работу №3. Вот "правильный ответ":
Работа No 3
Решение правильное, однако размер используемой памяти (массивы D1 и D2) зависит от входных данных. Согласно критериям, работа ученика должна быть оценена в 2 балла.


Я в упор не могу понять почему, хотя ответ у нас одинаковый, т.к. и я и "правильный" ответ пишем, что проблема у ученика в использовании массива, но у меня это критерий на три балла, а у "правильного" ответа это критерий на 2 балла! Где собака зарыта?!?!
Вот дословно критерий на 2 балла:
Не выполнены условия, позволяющие поставить 3 или 4 балла, при этом программа работает верно, эффективно или нет. В частности, в 2 балла оцениваются переборные решения, в которых все исходные данные сохраняются в массиве, рассматриваются все возможные треугольники, из которых выбираются подходящие.
Допускается наличие нескольких содержательных ошибок, описанных в критериях на 3 балла, и до пяти синтаксических ошибок, описанных в критериях на 4 балла.

Может совместными усилиями разберёмся?

Добавлено спустя 3 минуты 19 секунд:
Чтобы было понятно, что всё не просто так, выкладываю мою апелляцию, оставшуюся без ответа, и мои письма в оргкомитет с ответами:
Апелляция участника на задание 3.3 в номинации Информатика
выставленный балл за задание: 3.0
балл, указанный участником как справедливый на его взгляд: 5
обоснование участника:
--
Абсолютно не понял согласно каким критериям работа должна быть оценена в 2 балла. Сравните сами:
= Ваш ответ =====
Решение правильное, однако размер используемой памяти (массивы D1 и D2)
зависит от входных данных. Согласно критериям, работа ученика должна быть
оценена в 2 балла.
================
==== Критерии из задания на 3 балла (выдержка) ===============
Не выполнены условия, позволяющие поставить 4 балла, при этом
программа работает верно, время работы линейно зависит от N, но
размер используемой памяти зависит от количества точек. Например,
входные данные запоминаются в массиве или другой структуре
данных, размер которой соответствует числу N.
=========================================================
Согласно Вашему же ответу соответствует критерий на 3 балла. В критерии на 2 балла размер используемой памяти даже не упоминается.
И, кстати, размер используемой памяти у ученика не зависит от входных данных. Массивы у него не динамические. Объявлены массивы так:
D1, D2: array [1..1000] of integer;
так что размер памяти будет выделен изначально под всю 1000 элементов массива и абсолютно не зависит от количества входных данных и не соответствует числу N в общем случае. Сколько бы он данных не ввёл, в памяти компьютера всё равно будет выделено 1000 элементов для каждого массива. В разделе VAR у него вообще не объявлено ни одной динамической структуры. Так что упоминание того, что размер используемой памяти зависит от входных данных, вообще не соответствует действительности.
--
Данное письмо сформировано автоматически, на него не следует отвечать.


Добавлено спустя 1 минуту 38 секунд:
Здравствуйте!
К сожалению, эксперт ГМЦ не оставил никаких комментариев.

---------------------------------------------
Дежурный администратор 77



20.11.2016, 22:34, "Артём":
>
> Здравствуйте!
>
> Помогите, пожалуйста, понять.
>Нет комментариев по апелляциям 3 части задания. Я, как минимум, указал на ошибку в критериях, но балл мне не поменяли и комментариев никаких нет.
>
> Критерий оценивания и правильный ответ в файле ответов на задания совершенно не сходятся, т.к. в правильном ответе 3.3 написано:
> Решение правильное, однако размер используемой памяти (массивы D1 и D2)
> зависит от входных данных. Согласно критериям, работа ученика должна быть
> оценена в 2 балла.
>
> Однако, это написано в критериях не на 2, а на 3 балла! Цитирую:
> Не выполнены условия, позволяющие поставить 4 балла, при этом
> программа работает верно, время работы линейно зависит от N, но
> размер используемой памяти зависит от количества точек. Например,
> входные данные запоминаются в массиве или другой структуре
> данных, размер которой соответствует числу N.
>
> И я указал именно этот ответ и мой ответ верный:
>
> Не выполнено условие, позволяющее поставить 4 балла: входные данные
> сохраняются в массиве. В остальном, все условия для получения 3 баллов
> выполнены. Программа работает верно. Вложенных циклов нет — программа
> линейно зависит от N.
> 1. Максимумы инициализированы.
> 2. Абсолютные значения применяются правильно.
> 3. Ошибок в сравнении нет.
> 4. Использования вещественных вычислений нет.
> 5. Случай отсутствия требуемого треугольника обрабатывается правильно.
> 6. Нет синтаксических ошибок.
>
> И в 3.2 очень спорный вопрос, который я очень подробно описал, но, опять же, нет никаких комментариев.
>
> Чтобы не быть голословным, я опишу ещё ошибку, чтобы не было ощущения что я наткнулся на единственную. 3.3 - это не единственная ошибка или опечатка в заданиях и ответах, просто другие не имели отношения к моим ошибкам или правильным ответам, но, на всякий случай, чтобы было понятно, что ошибки всё же есть и показать, что моё сообщение не просто так, я всё же расскажу про ещё одну ошибку, которая была бы актуальна тем, кто решал 2.4 не на Паскале (как я по привычке), а на Си или Питоне.
>
> for k in range(3,N-2): или for(int k=3;k<N-2;k++)
>
> это не то же самое, что
>
> нц для k от 3 до N-2 или for k:=3 to N-2 do или FOR K = 3 TO N-2
>
> конструкции для Си и Питона в задании не соответствуют остальным языкам, т.к. условие k<N-2 не включает в рассмотрение элемент N-2 и в Питоне range(3,N-2) диапазон тоже не включает последний элемент:
>
> $ python
> Python 2.7.11 (default, Apr 15 2016, 13:09:43)
> [GCC 5.3.1 20151207 (ALT Linux 5.3.1-alt3)] on linux2
> Type "help", "copyright", "credits" or "license" for more information.
> >>> range(3,5)
> [3, 4]
>
> Прошу не игнорировать ошибки, а выставить справедливую оценку хотябы за 3.3, если 3.2 ещё спорный вопрос по апелляции, то в 3.3 ошибка однозначная.


Добавлено спустя 1 минуту 30 секунд:
Ваша работа и ваша апелляция были проверены тремя независимыми квалифицированными экспертами. Оргкомитет олимпиады не имеет оснований для сомнения в квалификации экспертов и обоснованности выставленной ими оценки.

---------------------------------------------
Дежурный администратор 77


Добавлено спустя 20 секунд:
Здравствуйте!

Ещё раз сообщаем Вам, что все Ваши обращения, Ваша работа и ваша апелляция были проверены экспертами. Никаких сомнений в квалификации экспертов и обоснованности выставленной ими оценки у оргкомитета нет.
Обсуждение критериев и заданий вне компетенции службы технической поддержки.


---------------------------------------------
Дежурный администратор 52


22.11.2016, 15:54, "Артём":
> Здравствуйте.
>
> Новую информацию я от Вас и не прошу. Я прошу разобраться с тем, что из-за Вашей ошибки условие и ответ в задании 3.3 НЕ СООТВЕТСТВУЮТ ДРУГ ДРУГУ.
> И исправить это недоразумение.
>
> С уважением, Артём.
>
> 22 ноя 2016 г. 15:38 пользователь "Московский Учитель" <mosteachersupport@ya.ru> написал:
>> Здравствуйте!
>> Извините, к сожалению, у нас нет для Вас никакой новой информации.
>>
>> ---------------------------------------------
>> Дежурный администратор 77
>>
>> 22.11.2016, 13:44, "Артём":
>>> Здравствуйте!
>>>
>>> Я Вам указываю на ошибку, которая, вероятно, была пропущена. Эта ошибка в задании или в правильном ответе, т.к. они друг с другом не совпадают. Чтобы это увидеть нет необходимости быть экспертом. Там просто ошибка и из-за этой ошибки у меня снижен бал.
>>>
>>> С уважением, Артём.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
tema
постоялец
 
Сообщения: 375
Зарегистрирован: 24.03.2011 20:19:27

Re: Олимпиада "Московский учитель 2016"

Сообщение Лекс Айрин » 23.11.2016 10:50:54

tema. думаю, бесполезно что-то делать. ИМХО, в своей ошибке никто их комитета не признается.

Не понял кстати, почему использование массивов для сохранения так критично... ведь логично же сначала все ввести, а потом искать. Прежде всего для отладки программы.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Олимпиада "Московский учитель 2016"

Сообщение Дож » 23.11.2016 11:42:12

Скачал аттач, смотрю.

После вдумчивого изучения задания и резолюции, считаю, что определённо произошла какая-то ошибка, учиник должен получить 3.
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47

Re: Олимпиада "Московский учитель 2016"

Сообщение tema » 23.11.2016 12:57:09

Блин. Вопрос прям критичный. Если это не удаётся доказать, то в следующий тур я не прохожу... :(
Реально какая-то просто ерунда! :evil:

Добавлено спустя 3 минуты 20 секунд:
Лекс Айрин писал(а):Не понял кстати, почему использование массивов для сохранения так критично... ведь логично же сначала все ввести, а потом искать. Прежде всего для отладки программы.

Для отладки может быть, но чтобы найти максимум из вводимых чисел массив совершенно не нужен. В принципе за это снижение всего на один балл. Максимум за задание ученик может получить 4 балла, а за массив 3 балла.
tema
постоялец
 
Сообщения: 375
Зарегистрирован: 24.03.2011 20:19:27

Re: Олимпиада "Московский учитель 2016"

Сообщение Лекс Айрин » 23.11.2016 13:37:15

tema писал(а):чтобы найти максимум из вводимых чисел массив совершенно не нужен.


Понятное дело.Тут просто другой подход к проектированию программ. На мелких прогах он ничего не значит, но в целом облегчает написание крупных программ.

tema писал(а):Если это не удаётся доказать, то в следующий тур я не прохожу... :(


А смысл участвовать в Олимпиаде, которая неряшливо организована? Так как уже не проходишь, то смысла быковать нет. А если бы прошел на следующий этап, то проще написать заявление на отказ от участия в олимпиаде. Аргументируя, если потребуется, недостаточной квалификацией комиссии.

К сожалению, как я понимаю, это обязаловка?
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Олимпиада "Московский учитель 2016"

Сообщение tema » 23.11.2016 14:10:53

Нет это не обязаловка, но это официальная всё-таки олимпиада. И есть возможность действительно попробовать проверить свои знания в интересных заданиях. Например, тут я получил урок за своё спустярукавашное отношение к паре простых заданий. Делал ночью, старался побыстрее и накосячил в паре заданий просто по-глупому. Даже апелляцию не подавал. Реально мелочи не учёл и получил снижение балла. Ну и ещё одно простое задание я себе сильно усложнил: там речь шла о натуральных числах, а мне вот ночью вбилось в голову слово "простые" и я вместо натуральных быстро написал программку и нашёл простые числа.
Мне нравятся такие интересные нюансы в заданиях и подвохи, поэтому хотелось бы пройти дальше, буду теперь более серьёзно относится к решению и внимательнее рассматривать задание :)
tema
постоялец
 
Сообщения: 375
Зарегистрирован: 24.03.2011 20:19:27

Re: Олимпиада "Московский учитель 2016"

Сообщение Лекс Айрин » 23.11.2016 14:22:58

tema, ну что тут можно сказать... мазохизм это, конечно, хорошо, но стоит учитывать, что эту олимпиаду лучше проходить чисто для себя и не верить ее организаторам.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Олимпиада "Московский учитель 2016"

Сообщение vada » 23.11.2016 15:10:01

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

ЗЫ. Кстати, в "правильной" программе есть некоторые неточности, впрочем, просто ошибки
- Задан размер массива 1000 элементов, но делается проверка на N <= 1000
- Решение не соответствует заданию (треугольник задан парой X,Y но Max1 и Max2 могут принадлежать разным парам)
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: Олимпиада "Московский учитель 2016"

Сообщение Дож » 23.11.2016 15:58:58

vada, и где здесь "переборное решение"? Где здесь "все данные сохраняются в массиве"?

- Задан размер массива 1000 элементов, но делается проверка на N <= 1000

У вас какая-то своя версия программы, никаких проверок нигде нет.

- Решение не соответствует заданию (треугольник задан парой X,Y но Max1 и Max2 могут принадлежать разным парам)

Max1 и Max2 принадлежать разным парам (первое для тех, что x=y, второе -- для x=-y).
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47

Re: Олимпиада "Московский учитель 2016"

Сообщение vada » 23.11.2016 18:48:50

Читать: Задан размер массива 1000 элементов, но не делается проверка на N <= 1000
Аватара пользователя
vada
энтузиаст
 
Сообщения: 691
Зарегистрирован: 14.02.2006 13:43:17

Re: Олимпиада "Московский учитель 2016"

Сообщение Дож » 23.11.2016 19:23:43

Эта проверка не нужна, потому что N<=1000 уже выполнено по условию задачи (На плоскости задано множество точек с целочисленными координатами, количество точек не превосходит 1000.).
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47

Re: Олимпиада "Московский учитель 2016"

Сообщение tema » 23.11.2016 21:35:51

В задачах гарантируется, что количество входных данных соответствует условию. Это объясняется в правилах к олимпиадам и ЕГЭ. И поэтому проверка на превышение обычно не требуется. Хотя лично я бы добавил такую проверку по привычке, в данном случае это необязательно.

Добавлено спустя 3 минуты 43 секунды:
vada писал(а):- Решение не соответствует заданию (треугольник задан парой X,Y но Max1 и Max2 могут принадлежать разным парам)

:shock: :?:
Вообще не понял что в этой фразе имеется ввиду.
tema
постоялец
 
Сообщения: 375
Зарегистрирован: 24.03.2011 20:19:27

Re: Олимпиада "Московский учитель 2016"

Сообщение bormant » 25.11.2016 11:49:11

Как по мне, предложено решение на 3 балла, хотя в отношении одного момента есть сомнения (ниже).

Не выполнен критерий "4 балла": "не сохраняя входные данные в массиве".
Критерии "3 балла":
1) программа работает верно: да
2) время работы линейно зависит от N: да
3) размер используемой памяти зависит от количества точек: нет/да
Наличие синтаксических ошибок: из трех допустимых одна (пропущена скобка после WriteLn).

Критерии "2 балла":
1) программа работает верно: да
2) переборное решение, в котором все исходные данные сохраняются в массиве, рассматриваются все возможные треугольники, из которых выбираются подходящие: нет.

Напомню варианты решения:
образец:
Код: Выделить всё
var
  N: integer; {количество точек}
  x,y: integer; {координаты очередной точки}
  amax, bmax: integer;
  s: integer; {площадь}
  i: integer;
begin
  readln(N); amax:=0; bmax:=0;
  for i:=1 to N do begin
    readln(x,y);
    if (x=y)  and (abs(x)>amax) then amax:=abs(x);
    if (x=-y) and (abs(x)>bmax) then bmax:=abs(x);
  end;
  s:=amax*bmax;
  if s=0 then writeln('Треугольник не существует')
  else writeln(s)
end.

оцениваемое (убрал лишние пары begin/end и сократил по высоте)
Код: Выделить всё
var
  N, ND1, ND2: integer;
  D1, D2: array [1..1000] 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; 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 if (D1[i] > Max1) then Max1:= D1[i];
  for i:=1 to ND2 do if (D2[i] > Max2) then Max2:= D2[i];
  S:=Max1*Max2;
  if (S=0) then writeln'Треугольник не существует')
  else writeln(S)
end.


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

На "не 3 балла" может претендовать только наличие статического массива на 1000 элементов.
Тем не менее, это не делает алгоритм решения нелинейным по N. Прием явно является наследием Turbo Pascal, не имеющего реализации динамических массивов средствами языка.
Но нельзя отрицать, что по критерию эффективности по памяти массив на 1000 элементов хуже, чем "размер используемой памяти зависит от количества точек. Например, входные данные запоминаются в массиве или другой структуре данных, размер которой соответствует числу N".

То есть, "три с минусом" гораздо ближе, чем "два с плюсом".
На 2 было бы:
Код: Выделить всё
var
  N: integer;
  D1, D2: array [1..1000] of integer;
  Max1, Max2: integer; S: integer; i, x, y: integer;
begin
  readln(N);
  for i:=1 to N do readln(D1[i],D2[i]);
  Max1:=0; Max2:=0;
  for i:=1 to N do if (D1[i]=D2[i])  and (Abs(D1[i]) > Max1) then Max1:= Abs(D1[i]);
  for i:=1 to N do if (D1[i]=-D2[i]) and (Abs(D2[i]) > Max2) then Max2:= Abs(D2[i]);
  S:=Max1*Max2;
  if (S=0) then writeln'Треугольник не существует')
  else writeln(S)
end.


Тем не менее, если "array [1..1000] of Integer" является безусловным нарушением критерия "размер используемой памяти зависит от количества точек", то увы, только 2 балла.
Аватара пользователя
bormant
постоялец
 
Сообщения: 407
Зарегистрирован: 21.03.2012 11:26:01

Re: Олимпиада "Московский учитель 2016"

Сообщение Лекс Айрин » 25.11.2016 12:36:43

bormant писал(а):Тем не менее, если "array [1..1000] of Integer" является безусловным нарушением критерия "размер используемой памяти зависит от количества точек", то увы, только 2 балла.


Т. е. налицо неправильно составленные критерии оценки задачи? Или придется использовать открытый массив, чтобы уложиться в троечку?
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Олимпиада "Московский учитель 2016"

Сообщение Дож » 25.11.2016 13:15:22

bormant,
Тем не менее, если "array [1..1000] of Integer" является безусловным нарушением критерия "размер используемой памяти зависит от количества точек", то увы, только 2 балла.

А вы сами посмотрите что они пишут про то, как нужно оценивать задание (kreiterii.pdf):
Решение правильное, однако размер используемой памяти (массивы D1 и D2) зависит от входных данных. Согласно критериям, работа ученика должна быть оценена в ... балла.

Что должно быть вместо троеточия, если пользоваться логикой? Что вместо троеточия у организаторов? :)
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47

След.

Вернуться в Потрепаться

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 3

Рейтинг@Mail.ru