Индекс Джини меток тепличных измерений
Условие
Автоматическая система собирает показания датчиков в теплице. Для каждой записи агроном указал метку состояния растений: NORMAL, DRY или OVERHEAT. Иногда метка отсутствует и обозначается символом -.
Требуется вычислить индекс Джини набора известных меток. Записи с меткой - в расчёте не участвуют. Если среди известных меток всего k записей, а метка c встретилась count(c) раз, то индекс Джини равен
G = 1 - Σ (count(c) / k)²,
где сумма берётся по всем различным известным меткам.
Если несколько меток встречаются одинаковое число раз, каждая из них отдельно учитывается в сумме; дополнительный выбор не производится. Гарантируется, что известна хотя бы одна метка.
Индекс Джини нужно вывести с тремя знаками после точки. Округление выполняется до ближайшего значения, а при ровно равных расстояниях выбирается значение с большей последней цифрой.
Формат ввода
В первой строке задано целое число n — число записей датчиков.
В следующих n строках заданы четыре значения: температура воздуха temperature, влажность humidity, концентрация углекислого газа co2 и метка состояния label.
Формат вывода
Выведите одно число — индекс Джини известных меток с тремя знаками после точки.
Ограничения
1 ≤ n ≤ 1000.
-20 ≤ temperature ≤ 60.
0 ≤ humidity ≤ 100.
300 ≤ co2 ≤ 5000.
label имеет длину от 1 до 8 символов и равно NORMAL, DRY, OVERHEAT или -.
Среди строк есть хотя бы одна строка, у которой label не равно -.
Решить задачу с автопроверкой на Python →
Куда дальше
- С нуля до олимпиады: маршрут — сколько занимает язык, какие приёмы нужны и к какому этапу это ведёт
- Перечневые олимпиады по информатике — олимпиады перечня Минобрнауки, их уровни и что нужно к диплому
- БВИ по олимпиадам: в какие вузы берут — правила приёма вузов, разобранные построчно, со ссылкой на приказ у каждой строки