Skip to content

Способ задания ценности отдельных тестов в задаче #40

@Mikari

Description

@Mikari

Проблема: задача может иметь тесты разной ценности. Может быть "блочность" задачи: за частичное решение хочется давать не около нуля, а 20-30-50% от всех баллов за задачу и т.д. Например, если существует решение для n<100 и решение для n<1000. Хочется давать немного баллов и тем, кто смог только написать простое решение.
Идея:
Дать способ задавать вес каждого теста и вес общего бонуса.

В самом контесте пусть задается суммарная стоимость задачи.
После делается так:
S - суммарная стоимость, W - суммарный вес (все тесты и бонус), w_i - вес i-ого теста, b_i - баллы за i-ый тест

b_i = int(S/W * w_i) (округление вниз!)
а в бонус отправить остаток

Кажется, такое будет надежно работать и не падать. В самых крайних случаях (слишком мелкая стоимость отдельных тестов) за тесты будет 0 баллов, а в бонус будет уходить всё :-)
Это можно починить специальным if'ом.

По умолчанию я бы сделал так: 30% бонус, остальное равномерно между всеми тестами.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions