Новая Школа - онлайн-школа подготовки к ЕГЭ
При поддержке
Тренировки Пробники Статистика Карточки Учебник Об экзамене Учительская
  • Тренажёр заданий ЕГЭ
  • Тренажёр ЕГЭ по Информатике
  • Список заданий №26
  • Задание №26
  • Задание №74459 ЕГЭ Информатике

    Условие задания #74459

    №26 по КИМ

    При проведении эксперимента заряженные частицы попадают на чувствительный экран, представляющий из себя матрицу размером 100 000 на 100 000 точек. При попадании каждой частицы на экран в протоколе фиксируются координаты попадания: номер ряда (целое число от 1 до 100 000) и номер позиции в ряду (целое число от 1 до 100 000).

    Точка экрана, в которую попала хотя бы одна частица, считается светлой, точка, в которую ни одна частица не попала,  — тёмной.

    При анализе результатов эксперимента рассматривают линии. Линией называют группу точек, расположенных в одном ряду подряд. Линия начинается и заканчивается светлыми точками, между которыми могут располагаться как светлые, так и тёмные точки, но не более семи тёмных точек подряд.

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

     

    Входные данные.

    Первая строка входного файла содержит целое число N  — общее количество частиц, попавших на экран. Каждая из следующих N строк содержит 2 целых числа: номер ряда и номер позиции в ряду.

    В ответе запишите два целых числа: сначала максимальное количество точек в одной линии, затем  — номер ряда, в котором это количество встречается.

    26 (3).txt

    Ответ

    Ответ:

    26 97586

    Решение

    f = open('26.txt')
    f.readline()
    a = []
    for i in f:
        a.append([int(str(i).split()[0]), int(str(i).split()[1])])
    a.sort(key=lambda x: x[0])
    max1 = 0
    ii = 0
    while ii < len(a):
        b = []
        z = a[ii][0]
        while a[ii][0] == z:
            b.append(a[ii][1])
            ii += 1
            if ii >= len(a):
                break
        b.sort()
        m = 1
        for j in range(len(b)-1):
            if b[j+1] - b[j] <= 8:
                m += b[j+1] - b[j]
            else:
                if m >= max1:
                    max1 = m
                    nn = a[ii - 1][0]
                m = 1
        if m >= max1:
            max1 = m
            nn = a[ii - 1][0]
    print(max1,nn)

    Понятно ли решение?

    Похожие задания

    15
    Задание №46720Задание №46721Задание №46752Задание №51424Задание №46719Задание №32183Задание №46642Задание №32179Задание №41214Задание №46643Задание №56108Задание №41209Задание №41208Задание №36692Задание №46645
    Бесплатно

    Решай задачи ЕГЭ в приложении

    Скачивай наш Тренажер ЕГЭ на iPhone или Android и тренируйся в любое время и в любом месте!

    Саша — ассистент в телеграмме