Информатика. ЕГЭ

Задание 27. Информатика. ЕГЭ 2027. Демо

Просмотры: 275
Изменено: 30 августа 2026

Рассматриваются частицы на плоскости, обладающие следующими характеристиками: декартовы координаты, вектор скорости, масса, а также признак, характеризующий внутреннее строение частицы, обозначаемый числами от \(I\) до \(VII\) (в римской системе счисления).

Учёный решил провести кластеризацию частиц по значениям их кинетической энергии, то есть разбить их множество на \(K\) непересекающихся непустых подмножеств (кластеров), таких, что модуль разности кинетических энергий любых двух частиц каждого подмножества не превосходит значения \(R.\) Гарантируется, что такое разбиение существует и единственно для заданного \(R.\)

Будем называть центром кластера такую его частицу, для которой сумма модулей разности кинетических энергий со всеми остальными частицами этого кластера минимальна. Для каждого кластера гарантируется единственность его центра.

В каждой строке текстового файла хранится информация об одной частице: координаты \(x\) и \(y,\) проекции вектора скорости \(v_x\) и \(v_y,\) масса \(m\) и признак. Значения даны в одинаковых для всех частиц единицах измерения, обозначения единиц измерения в файле не приводятся. Значения в строке разделяются одним или несколькими пробелами и/или символами табуляции. Количество строк в файле не превышает \(10~000.\) Абсолютная величина каждого числового значения не превышает \(100{,}0.\)

Известно, что все описанные в файле частицы подразделяются ровно на \(4\) кластера \((K = 4)\) с \(R = 2{,}0\) для каждого.

Для каждого кластера определите его центр, затем найдите два числа: \(Q_1\) – наибольшее евклидово расстояние между частицами одного кластера, имеющими признак \(II,\) и \(Q_2\) – максимальное значение кинетической энергии для центра кластера.

В ответе запишите два числа: сначала целую часть произведения \(Q_1 \times 10~000,\) затем целую часть произведения \(Q_2 \times 10~000.\)

Для справки

Кинетическая энергия \(E\) частицы массы \(m,\) обладающей скоростью \(\vec{v}= (v_x; \, v_y)\) вычисляется по формуле: $$E = \frac{1}{2} m \left( v_x^2 + v_y^2 \right).$$ Евклидово расстояние между двумя точками на плоскости \(A(x_1, \, y_1)\) и \(B(x_2, \, y_2)\) вычисляется по формуле: $$d(A, \, B) = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2}$$

Типовой пример организации данных во входном файле

Три строки файла для трёх частиц:

\(0{,}67\)\(-2{,}14\)\(3{,}0\)\(-4{,}0\)\(0{,}2\)\(V\)
\(3{,}14\)\(7{,}22\)\(3{,}2\)\(4{,}3\)\(0{,}7\)\(II\)
\(1{,}33\)\(5{,}56\)\(0{,}00\)\(5{,}22\)\(0{,}456\)\(IV\)

Для частицы из первой строки примера кинетическая энергия равна \(2{,}5.\)

Типовой пример имеет иллюстративный характер. Для выполнения задания используйте данные из прилагаемого файла.

Решение:

Python


from math import dist

def kin_energy(pt):
    x, y, vx, vy, m, p = pt
    return m*(vx**2 + vy**2) / 2

def part_dist(p1, p2):
    x1, y1, vx1, vy1, m1, p1 = p1
    x2, y2, vx2, vy2, m2, p2 = p2
    return dist((x1, y1), (x2, y2))

R = 0.5
K = 4

data = []
for line in open('demo_27.txt'):
    x, y, vx, vy, m, p = line.replace(',', '.').split()
    data.append([float(x), float(y), float(vx), float(vy), float(m), p])
clusters = []
while data:
    clusters.append([data.pop()])
    for part in clusters[-1]:
        ek = kin_energy(part)
        neigh = [pt for pt in data if abs(ek - kin_energy(pt)) <= R]
        clusters[-1] += neigh
        for pt in neigh:
            data.remove(pt)
# print(len(clusters), [len(cl) for cl in clusters])
centers = []
for cl in clusters:
    mkin = float('inf')
    c = None
    for pt in cl:
        ek = kin_energy(pt)
        kin = sum(abs(ek - kin_energy(p)) for p in cl)
        if kin < mkin:
            mkin = kin
            c = pt
    centers.append(c)

Q1 = 0
for cl in clusters:
    tmp_cl = [pt for pt in cl if pt[-1] == 'II']
    for i in range(len(tmp_cl) - 1):
        for j in range(i + 1, len(tmp_cl)):
            Q1 = max(Q1, part_dist(tmp_cl[i], tmp_cl[j]))

Q2 = max(kin_energy(p) for p in centers)

print(int(10_000 * Q1), int(10_000 * Q2))

Ответ: \(539936 \,\, 100704\)

Новый тренажёр-эмулятор
Станции КЕГЭ

Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене

Новое видео
Методы решения задания 16 ЕГЭ по Информатике «Вычисление рекуррентных выражений»
Поддержать автора сайта!
​ Поддержите автора сайта, если материалы, размещённые здесь, оказались вам полезны.
Расписание пробников Статграда в 2026/27 учебном году
Информатика ОГЭ 9 класс
  1. 13 октября 2026 года
  2. 3 декабря 2026 года
  3. 21 января 2027 года
  4. 19 февраля 2027 года
  5. 23 марта 2027 года
  6. 27 апреля 2027 года
Математика ОГЭ 9 класс
  1. 23 сентября 2026 года
  2. 1 декабря 2026 года
  3. 22 января 2027 года
  4. 3 марта 2027 года
  5. 14 апреля 2027 года
Физика ОГЭ 9 класс
  1. 19 октября 2026 года
  2. 10 декабря 2026 года
  3. 29 января 2027 года
  4. 17 марта 2027 года
  5. 22 апреля 2027 года
Математика ЕГЭ 10 класс
  1. 3 февраля 2027 года
  2. 11 мая 2027 года
Информатика ЕГЭ 11 класс
  1. 22 октября 2026 года
  2. 15 декабря 2026 года
  3. 26 января 2027 года
  4. 2 марта 2027 года
  5. 13 апреля 2027 года
Математика ЕГЭ 11 класс
  1. 30 сентября 2026 года
  2. 17 декабря 2026 года
  3. 9 февраля 2027 года
  4. 16 марта 2027 года
  5. 21 апреля 2027 года
Физика ЕГЭ 11 класс
  1. 14 октября 2026 года
  2. 16 декабря 2026 года
  3. 4 февраля 2027 года
  4. 12 марта 2027 года
  5. 9 апреля 2027 года