Тема 26. Программирование - Обработка целочисленной информации с использованием сортировки
26.02 Саженцы, места в театр, стадион и др.
Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела программирование - обработка целочисленной информации с использованием сортировки
Решаем задачи

Ошибка.
Попробуйте повторить позже

Задача 1#56549

Задание выполняется с использованием прилагаемых файлов

В лесополосе осуществляется посадка деревьев. Причем деревья высаживают рядами на одинаковом расстоянии. Между соседними деревьями в одном ряду расстояние 10  метров.

Через какое-то время осуществляется аэросъемка, в результате которой определяется, какие деревья прижились. Для успешного перекрестного опыления необходимо, чтобы дерево было на расстоянии не более 20  метров от прижившегося дерева, иначе оно не будет плодоносить. При аэросъемке была совершена ошибка — одно и то же дерево могло быть снято дважды. Определите, какое минимальное количество деревьев нужно посадить, чтобы все деревья могли плодоносить, и номер ряда, в котором необходимо посадить максимальное количество деревьев. Если таких рядов несколько, нужно найти номер первого из них. Если дерево можно посодить в нескольких местах между двумя другими так, что оно будет соседом для обоих, оно садится на максимальном отдалении от дерева с меньшим номером, дерево не может быть посажено за пределами существующего поля.

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

В первой строке входного файла находится число N(1 ≤ N ≤ 10000)  — количество занятых мест. Каждая из следующих N  строк содержит два натуральных числа, не превышающих 1000  : номер ряда и номер занятого места.

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

Два целых неотрицательных числа: минимальное количество деревьев которое нужно посадить, чтобы все деревья могли плодоносить, и минимальный номер ряда, в котором необходимо посадить максимальное количество деревьев.

Пример входного файла:

7

4 2

7 5

4 5

5 1

7 1

5 5

7 10

В этом случае достаточно посадить 4  дерева в позициях (4,4)  , (5,3)  , (7,3)  и (7,8)  . Наибольшее количество деревьев нужно посадить в 7-м ряду. Ответ: 4 7  .

Вложения к задаче
Показать ответ и решение

Решение 1 (Excel/LibreOffice)
Откроем текстовый документ, скопируем значения и перенесем их в Excel или LibreOffice.
Удалим значение количества занятых мест. Воспользуемся настраиваемой сортировкой, на первый уровень расположим столбец A  (по возрастанию), на второй - столбец B  (по возрастанию). Выделим полностью столбцы A  и B  , перейдём в раздел Данные и нажимаем на инструмент Удалить дубликаты, в появившемся окне выбираем Выделить все и нажимаем ОК (это удалит деревья, которые были по ошибке сняты дважды).

Добавляем пустую строку перед самой первой (нажимаем правой кнопкой мыши на строку 1  и выбираем Вставить).
Введём обозначения каждого столбца, в которые будем записывать формулы: столбец C  Можно ли опылить текущее дерево предыдущим?, столбец D  Можно ли опылить текущее дерево следующим?, столбец E  Можно ли опылить текущее дерево дополнительно высаженным до него деревом?, столбец F  Высаживаем дополнительное дерево, столбец G  Было ли высажено дерево?, столбец H  Счётчик количества деревьев в каждом ряду.

В ячейку C2  запишем формулу =И(A1=A1;B2-B1<=2), в D2  — =И(A2=A3;B3-B2<=2), в E2  - =И(A2=A1;B2-F1<=2), в F 2  — =ЕСЛИ(ИЛИ(C2:E2);-1000000;ЕСЛИ(B2+2>=МАКС(B:B);B2-2;B2+2)), в G2  — =ЕСЛИ(F2>0;1;0). Выделим все эти ячейки, скопируем и вставим на все столбцы C : G  . Считаем общее количество высаженных деревьев — =СУММ(G:G).
В ячейку H2  запишем 1, а в H3  — формулу =ЕСЛИ(A2=A3;H2+G3;1), скопируем её и вставим на все оставшиеся клеточки столбца H  . Находим в этом столбце максимальное значение, равное 19. Теперь найдём ряд, в котором необходимо посадить это максимальное количество деревьев.

Решение 2 (Python)

f = open(’Задание 26.txt’)
n = int(f.readline())
max_place = 0
max_row = 0
for i in range(n):
    a, b = map(int, f.readline().split())
    max_row = max(a, max_row)
    max_place = max(b, max_place)
f.close()
f = open(’Задание 26.txt’)
n = int(f.readline())
arr = []
for i in range(max_row + 1):
    arr.append([0]*(max_place + 3))
for i in range(n):
    a, b = map(int, f.readline().split())
    arr[a][b] = 1
counter = 0
maxim = 0
maxim_row = 0
for i in range(max_row + 1):
    temp = 0
    for j in range(max_place + 1):
        if arr[i][j] == 1:
            if arr[i][j+2] == 0 and arr[i][j-2] == 0 and arr[i][j+1] == 0 and arr[i][j-1] == 0:
                if j+2 >= max_place:
                    arr[i][j-2] = 1
                else:
                    arr[i][j+2] = 1
                counter += 1
                temp += 1
                if maxim < temp:
                    maxim = temp
                    maxim_row = i
print(counter, maxim_row)

Ответ: 9366 232

Ошибка.
Попробуйте повторить позже

Задача 2#56333

Задание выполняется с использованием прилагаемых файлов

При проведении эксперимента заряженные частицы попадают на чувствительный экран, представляющий из себя матрицу размером 10000  на 10000  точек. При попадании каждой частицы на экран в протоколе фиксируются координаты попадания: номер ряда (целое число от 1  до 10000  ) и номер позиции в ряду (целое число от 1  до 10000  ). Точка экрана, в которую попала хотя бы одна частица, считается светлой, точка, в которую ни одна частица не попала, — тёмной. При анализе результатов эксперимента рассматривают группы светлых точек, расположенных в одном ряду подряд, то есть без тёмных точек между ними. Вам необходимо по заданному протоколу определить максимальную длину такой группы и номер ряда, в котором эта группа встречается. Если таких рядов несколько, укажите минимально возможный номер.

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

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

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

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

Пример входного файла:

7

1 2

2 3

3 6

2 4

1 3

2 5

2 4

При таких исходных данных имеется три группы светлых точек: в позициях 2− 3  ряда 1  , в позициях 3 − 5  ряда 2  и в позиции 6  ряда 3  . Самая длинная группа длины 3  находится во 2  ряду. Ответ: 3 2  .

Вложения к задаче
Показать ответ и решение

Решение 1 (Excel/LibreOffice)
Откроем текстовый документ, скопируем значения и перенесем их в Excel или LibreOffice.
Воспользуемся настраиваемой сортировкой, на первый уровень расположим столбец A  (по возрастанию), на второй - столбец B  (по возрастанию). Выделим полностью столбцы A и B , перейдём в раздел "Данные"и нажимаем на инструмент "Удалить дубликаты в появившемся окне выбираем "Выделить все"и нажимаем "ОК"(это удалит частицы, которые были по ошибке сняты дважды). В ячейку C1  запишем 1  , а в C2  - формулу =ЕСЛИ(И(A2=A1;B2-B1=1);C1+1;1), скопируем её на все свободные клеточки этого столбца. Находим максимальную длину группы точек в столбце C  и номер ряда, в котором эта группа встречается. Выписываем этот номер и наименьший номер ряда, где нашлись обозначенные в задаче точки.

Решение 2 (Python)

f = open(26.txt’)
n = int(f.readline())
a = [[0] * 10001 for j in range(10001)]
maxim = 0
row = 0
for i in range(n):
    x, y = [int(s) for s in f.readline().split()]
    a[x][y] = 1
for i in range(10001):
    counter = 0
    for j in range(10001):
        if a[i][j] == 1:
            counter += 1
        else:
            counter = 0
        if counter > maxim:
            maxim = counter
            row = i
print(maxim, row)

Ответ: 10 2786

Ошибка.
Попробуйте повторить позже

Задача 3#45970

Задание выполняется с использованием прилагаемых файлов

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

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

В первой строке входного файла находится одно число: N  — количество занятых мест (натуральное число, не превышающее 10000  ). В следующих N  строках находятся пары чисел: ряд и место выкупленного билета, не превышающие 100000  .

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

Пример входного файла:

9

5 5

5 9

16 4

16 19

16 7

20 23

20 28

20 36

20 40

В данном примере условию удовлетворяют 16  ряд 5  -е и 6  -е места. В ответе нужно указать: 16 6  .

Вложения к задаче
Показать ответ и решение

(Excel/LibreOffice)
Откроем текстовый документ, скопируем значения и перенесем их в Excel или LibreOffice.
Воспользуемся настраиваемой сортировкой, на первый уровень расположим столбец A  (по возрастанию), на второй - столбец B  (по возрастанию). В ячейку C1  запишем формулу =ЕСЛИ(И(A1=A2;B2-3=B1);1;0), скопируем её на все свободные клеточки этого столбца. Находим первую единицу в столбце C  . Выписываем в ответ минимальный номер ряда и максимальный номер свободного места.

Ответ: 16 8640

Ошибка.
Попробуйте повторить позже

Задача 4#45968

Задание выполняется с использованием прилагаемых файлов

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

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

В первой строке входного файла находится одно число: N  — количество занятых мест (натуральное число, не превышающее 10000  ). В следующих N  строках находятся пары чисел: ряд и место выкупленного билета, не превышающие 100000  .

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

Пример входного файла:

9

5 5

5 9

16 4

16 3

16 5

20 23

20 28

20 36

20 40

В данном примере условию удовлетворяют 16  ряд и 4  -е место. В ответе нужно указать: 16 4  .

Вложения к задаче
Показать ответ и решение

(Excel/LibreOffice)
Откроем текстовый документ, скопируем значения и перенесем их в Excel или LibreOffice.
Воспользуемся настраиваемой сортировкой, на первый уровень расположим столбец A  (по убыванию), на второй - столбец B  (по возрастанию). В ячейку C1  запишем формулу =ЕСЛИ(И(A1=A3;B1-2=B3);1;0), скопируем её на все свободные клеточки этого столбца. Находим первую единицу в столбце C  . Выписываем в ответ максимальный номер ряда и номер места.

Ответ: 9990 6317

Ошибка.
Попробуйте повторить позже

Задача 5#28822

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

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

В первой строке входного файла находится одно число: N  — количество занятых мест (натуральное число, не превышающее 10000  ). В следующих N  строках находятся пары чисел: ряд и место выкупленного билета, не превышающие 100000.

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

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

Пример входного файла:

10

5 5

5 9

5 6

16 9

16 3

16 6

20 23

20 28

20 35

20 40

В данном примере есть следующие свободные места, удовлетворяющие условию: 7  и 8  в ряду 5  , 4  и 5  в ряду      16  , а также 7  и 8  в ряду 16  . Выбираем наименьший номер ряда: 5  и наибольший номер места: 8  . В ответе нужно указать: 5 8  .

Вложения к задаче
Показать ответ и решение

Решение 1 (Excel/LibreOffice)
Откроем текстовый документ, скопируем значения и перенесем их в Excel или LibreOffice.
Воспользуемся настраиваемой сортировкой, на первый уровень расположим столбец A  , на второй столбец B  . В ячейкb C1  запишем 1  , а в C2  - формулу =ЕСЛИ(И(A1=A2;(B2-B1)>=3);1;0), скопируем её на все свободные клеточки этого столбца. Находим первую встреченную единичку, записываем в ответ найденные значения номеров ряда и места (последнее свободное место - это место на 1  меньше того, которое записано в найденной строке), соответствующие данной единице.

Решение 2 (Python)

f = open(’Задание_26.txt’)
n = int(f.readline())
max_ryad = 0
max_mesto = 0
for i in range(n):
    x, y = map(int, f.readline().split())
    max_ryad = max(max_ryad, x)
    max_mesto = max(max_mesto, y)
a = []
for i in range(max_ryad+1):
    a.append([0]*(max_mesto+1))
f.close()
f = open(’Задание_26.txt’)
n = int(f.readline())
for i in range(n):
    x, y = map(int, f.readline().split())
    a[x][y] = 1
maxim = 0
for i in range(max_ryad+1):
    for j in reversed(range(max_mesto)):
        if a[i][j] == 1 and a[i][j-3] == 1:
            maxim = j - 1
            break
    if maxim != 0:
        print(i, maxim)
        break

Ответ: 4005 238

Ошибка.
Попробуйте повторить позже

Задача 6#28228

Задание выполняется с использованием прилагаемых файлов

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

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

В первой строке входного файла находится одно число: N  — количество занятых мест (натуральное число, не превышающее 10000  ). В следующих N  строках находятся пары чисел: ряд и место выкупленного билета, не превышающие 100000  .

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

Пример входного файла:

9

5 5

5 9

16 9

16 3

16 6

20 23

20 28

20 36

20 40

В данном примере есть следующие свободные места, удовлетворяющие условию: 6− 8  в ряду 5  , а также 37− 39  в ряду 20  . Выбираем наименьший номер ряда: 5  и средний номер места: 7  . В ответе нужно указать: 5 7  .

Вложения к задаче
Показать ответ и решение

Решение 1 (Excel/LibreOffice)
Откроем текстовый документ, скопируем значения и перенесем их в Excel или LibreOffice.
Воспользуемся настраиваемой сортировкой, на первый уровень расположим столбец A  (по возрастанию), на второй - столбец B  (по возрастанию). В ячейку C1  запишем 1  , а в C2  - формулу =ЕСЛИ(И(A2=A1;B2-4=B1);C1+1;1), скопируем её на все свободные клеточки этого столбца. Находим максимальное значение в столбце C  . Выписываем в ответ минимальный номер ряда, где встречается это значение, и максимальный средний номер среди имеющихся троек в данном ряду.

Решение 2 (Python)

file = open("task 2.txt")
n = int(file.readline())
rows = {}
for line in file:
    row, place = map(int, line.split())
    if row in rows:
        rows[row].add(place)
    else:
        rows[row] = {place}

maxim = 0
for r in sorted(rows.keys()):
    row = list(rows[r])
    length = len(row)
    for i in range(length):
        for j in range(i + 1, length):
            if row[j] - row[i] == 4 and row[i] + 2 > maxim:
                maxim = row[i] + 2
    if maxim != 0:
        print(r, maxim)
        break

Ответ: 1784 3573

Ошибка.
Попробуйте повторить позже

Задача 7#28008

Задание выполняется с использованием прилагаемых файлов

В лесополосе осуществляется посадка деревьев. Причем деревья высаживают рядами на одинаковом расстоянии. Между соседними деревьями в одном ряду расстояние 10  метров.

Через какое-то время осуществляется аэросъемка, в результате которой определяется, какие деревья прижились. Для успешного перекрестного опыления необходимо, чтобы дерево было на расстоянии не более 20  метров от прижившегося дерева, иначе оно не будет плодоносить. При аэросъемке была совершена ошибка — одно и то же дерево могло быть снято дважды. Определите, какое минимальное количество деревьев нужно посадить, чтобы все деревья могли плодоносить, и номер ряда, в котором необходимо посадить максимальное количество деревьев. Если таких рядов несколько, нужно найти номер первого из них.

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

В первой строке входного файла находится число N(1 ≤ N ≤ 10000)  — количество занятых мест. Каждая из следующих N  строк содержит два натуральных числа, не превышающих 1000  : номер ряда и номер занятого места.

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

Два целых неотрицательных числа: минимальное количество деревьев которое нужно посадить, чтобы все деревья могли плодоносить, и минимальный номер ряда, в котором необходимо посадить максимальное количество деревьев.

Пример входного файла:

7

4 2

7 5

4 5

5 1

7 1

5 5

7 10

В этом случае достаточно посадить 4  дерева в позициях (4,3)  , (5,3)  , (7,3)  и (7,8)  . Наибольшее количество деревьев нужно посадить в 7-м ряду. Ответ: 4 7  .

Вложения к задаче
Показать ответ и решение

Решение 1 (Excel/LibreOffice)
Откроем текстовый документ, скопируем значения и перенесем их в Excel или LibreOffice.
Удалим значение количества занятых мест. Воспользуемся настраиваемой сортировкой, на первый уровень расположим столбец A  (по возрастанию), на второй - столбец B  (по возрастанию). Выделим полностью столбцы A  и B  , перейдём в раздел Данные и нажимаем на инструмент Удалить дубликаты, в появившемся окне выбираем Выделить все и нажимаем ОК (это удалит деревья, которые были по ошибке сняты дважды).

PIC

Добавляем пустую строку перед самой первой (нажимаем правой кнопкой мыши на строку 1  и выбираем Вставить).
Введём обозначения каждого столбца, в которые будем записывать формулы: столбец C  Можно ли опылить текущее дерево предыдущим?, столбец D  Можно ли опылить текущее дерево следующим?, столбец E  Можно ли опылить текущее дерево дополнительно высаженным до него деревом?, столбец F  Высаживаем дополнительное дерево, столбец G  Было ли высажено дерево?, столбец H  Счётчик количества деревьев в каждом ряду.

PIC

В ячейку C3  запишем формулу =И(A2=A3;B3-B2<=2), в D3  — =И(A3=A4;B4-B3<=2), в E3  - =И(A3=A2;B3-F2<=2), в F 3  — =ЕСЛИ(ИЛИ(C3:E3);-1000000;B3+2), в G3  — =ЕСЛИ(F3>0;1;0). Выделим все эти ячейки, скопируем и вставим на все столбцы C : G  . Считаем общее количество высаженных деревьев — =СУММ(G3:G9944).
В ячейку H3  запишем 1, а в H4  — формулу =ЕСЛИ(A3=A4;H3+G4;1), скопируем её и вставим на все оставшиеся клеточки столбца H  . Находим в этом столбце максимальное значение, равное 19. Теперь найдём ряд, в котором необходимо посадить это максимальное количество деревьев.

Решение 2 (Python)

f = open(’Задание 26.txt’)
n = int(f.readline())
max_place = 0
max_row = 0
for i in range(n):
    a, b = map(int, f.readline().split())
    max_row = max(a, max_row)
    max_place = max(b, max_place)
f.close()
f = open(’Задание 26.txt’)
n = int(f.readline())
arr = []
for i in range(max_row + 1):
    arr.append([0]*(max_place + 3))
for i in range(n):
    a, b = map(int, f.readline().split())
    arr[a][b] = 1
counter = 0
maxim = 0
maxim_row = 0
for i in range(max_row + 1):
    temp = 0
    for j in range(max_place + 1):
        if arr[i][j] == 1:
            if arr[i][j+2] == 0 and arr[i][j-2] == 0 and arr[i][j+1] == 0 and arr[i][j-1] == 0:
                arr[i][j+2] = 1
                counter += 1
                temp += 1
                if maxim < temp:
                    maxim = temp
                    maxim_row = i
print(counter, maxim_row)

Ответ: 9313 319

Ошибка.
Попробуйте повторить позже

Задача 8#26988

Задание выполняется с использованием прилагаемых файлов

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

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

В первой строке входного файла находится одно число: N  — количество занятых мест (натуральное число, не превышающее 10000  ). В следующих N  строках находятся пары чисел: ряд и место выкупленного билета (числа не превышают 100000  ).

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

Пример входного файла:

6

50 12

50 15

60 157

60 160

60 22

60 25

Для данного примера ответом будет являться пара чисел 60  и 23  .

Вложения к задаче
Показать ответ и решение

Решение 1 (Excel/LibreOffice)
Откроем текстовый документ, скопируем значения и перенесем их в Excel или LibreOffice.
Воспользуемся настраиваемой сортировкой, на первый уровень расположим столбец A  (по убыванию), на второй - столбец B  (по возрастанию). В ячейку C1  запишем 1  , а в C2  - формулу =ЕСЛИ(И(A1=A2;B2=B1+3);C1+1;1), скопируем её на все свободные клеточки этого столбца. Находим максимальное значение номера ряда, где нашлись обозначенные в задаче места, и среди них находим то, что имеет наименьший номер места. Выписываем этот номер и наименьший номер места из найденных в этом ряду подходящих пар.

Решение 2 (Python)

f = open(’26.txt’)
n = int(f.readline())

a = []
for i in range(n):
    x, y = [int(_) for _ in f.readline().split()]
    a.append([x, y])
a.sort()

ans = [0, 0]

for i in range(n - 1):
    if a[i][0] == a[i + 1][0] and a[i][1] == a[i + 1][1] - 3:
        row = a[i][0]
        seat = a[i][1] + 1
        if row > ans[0]:
            ans[0] = row
            ans[1] = seat

print(*ans)

Ответ: 8631 7311

Ошибка.
Попробуйте повторить позже

Задача 9#26693

В лесополосе осуществляется посадка деревьев. Причем саженцы высаживают рядами на одинаковом расстоянии.

Через какое-то время осуществляется аэросъемка, в результате которой определяется, какие саженцы прижились. Необходимо определить ряд с максимальным номером, в котором есть подряд ровно 7  неприжившихся саженцев, при условии, что справа и слева от них саженцы прижились. В ответе запишите сначала наибольший номер ряда, затем наименьший номер из неприжившихся мест.

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

В первой строке входного файла находится число N  — количество занятых мест (натуральное число, не превышающее 10000  ). Каждая из следующих N  строк содержит два натуральных числа, не превышающих 100000  : номер ряда и номер занятого места.

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

Два целых неотрицательных числа: максимальный номер ряда, где нашлись обозначенные в задаче места, и минимальный номер подходящего места.

Пример входного файла:

7

40 30

40 34

50 125

50 129

50 64

50 68

50 70

Ответ для примера (при поиске 3  подряд идущих неприжившихся саженцах): 50 65

Вложения к задаче
Показать ответ и решение

Решение 1 (Excel/LibreOffice)
Откроем текстовый документ. Запомним первое число и удалим его. Скопируем все числа в Excel. В разделе Главная      ⇒ Сортировка и фильтр ⇒ Настраиваемая сортировка делаем сортировку столбцов:

PIC

В ячейке D2  записываем формулу =ЕСЛИ(И(A2=A1;B2=B1+8);"НАШЁЛ";0) и растягиваем её на диапазоне [D2 : D10000]  . Наводим курсор на столбец D  , нажимаем на Главная ⇒ Сортировка и фильтр ⇒ Фильтр. Сортируем столбец D  по критерию "НАШЁЛ". Получаем единственный номер ряда — 1536  и наименьший номер неприжившегося саженца — 141− 7 = 134  .

Решение 2 (Python)

f = open(’Задание_26__o4nj.txt’)
n = int(f.readline())

a = []
for i in range(n):
    x, y = [int(_) for _ in f.readline().split()]
    a.append([x, y])
a.sort()

ans = [0, 0]

for i in range(n - 1):
    if a[i][0] == a[i + 1][0] and a[i][1] == a[i + 1][1] - 8:
        row = a[i][0]
        place = a[i][1] + 1
        if row > ans[0]:
            ans[0] = row
            ans[1] = place

print(*ans)

Ответ: 1536 134

Ошибка.
Попробуйте повторить позже

Задача 10#25111

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

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

В первой строке входного файла находится одно число: N  — количество занятых мест (натуральное число, не превышающее 10000  ). В следующих N  строках находятся пары чисел: ряд и место выкупленного билета, не превышающие 100000  .

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

Пример входного файла:

9

5 5

5 9

16 9

16 3

16 6

20 23

20 28

20 36

20 40

В данном примере есть следующие свободные места, удовлетворяющие условию: 6− 8  в ряду 5  , а также 37− 39  в ряду 20  . Выбираем наименьший номер ряда: 5  и средний номер места: 7  . В ответе нужно указать: 5 7  .

Вложения к задаче
Показать ответ и решение

Решение 1 (Excel/LibreOffice)
Откроем текстовый документ, скопируем значения и перенесем их в Excel или LibreOffice.
Воспользуемся настраиваемой сортировкой, на первый уровень расположим столбец A  (по возрастанию), на второй - столбец B  (по возрастанию). В ячейку C1  запишем 1  , а в C2  - формулу =ЕСЛИ(И(A2=A1;B2-4=B1);1;0), скопируем её на все свободные клеточки этого столбца. Далее находим первый ряд, в котором появиласт 1 – это 136. Остается только среди этого ряда найти последнюю единичку, она находится в строке с местом 299. Следовательно среднее место среди этих свободных – 297.

Решение 2 (Python)

f = open(’26.txt’)
n = int(f.readline())
max_ryad = 0
max_mesto = 0
for i in range(n):
    x, y = map(int, f.readline().split())
    max_ryad = max(max_ryad, x)
    max_mesto = max(max_mesto, y)
a = []
for i in range(max_ryad + 1):
    a.append([0] * (max_mesto + 1))
f.close()
f = open(’26.txt’)
n = int(f.readline())
for i in range(n):
    x, y = map(int, f.readline().split())
    a[x][y] = 1
maxim = 0
for i in range(max_ryad + 1):
    for j in reversed(range(max_mesto)):
        if a[i][j] == 1 and a[i][j - 4] == 1 and a[i][j - 3] == 0 and \
                a[i][j - 2] == 0 and a[i][j - 1] == 0:
            maxim = j - 2
            break
    if maxim != 0:
        print(i, maxim)
        break

Ответ: 136 297

Ошибка.
Попробуйте повторить позже

Задача 11#24427

Задание выполняется с использованием прилагаемых файлов

Организация купила для своих сотрудников все места в нескольких рядах на стадионе. Известно, какие места уже распределены между сотрудниками. Найдите ряд с наименьшим номером, в котором есть четыре соседних места, таких что слева и справа от них в том же ряду места уже распределены (заняты). Гарантируется, что есть хотя бы один ряд, удовлетворяющий условию. По заданной информации определите минимальный номер ряда, удовлетворяющего условию, и наибольший номер места из найденных в этом ряду четверок мест.

Входные и выходные данные

В первой строке входного файла находится одно число: N  — количество занятых мест (натуральное число, не превышающее 10000  ). В следующих N  строках находятся пары чисел: ряд и место выкупленного билета (числа не превышают 100  000  ).

Пример входных данных:

7

4 1

3 5

4 6

4 7

3 6

3 10

5 8

При таких исходных данных ответ должен содержать 2  числа: 3  — минимальный номер ряда, и 9  — наибольший номер места из выбранной четверки в 3  ряду (была выбрана четверка с номерами 6,7,8,9  ).

Вложения к задаче
Показать ответ и решение

Решение 1 (Excel/LibreOffice)
Откроем текстовый документ. Запомним первое число и удалим его. Скопируем все числа в Excel или LibreOffice. В разделе Главная ⇒ Сортировка и фильтр ⇒ Настраиваемая сортировка делаем сортировку столбцов:

PIC

В ячейке C2  записываем формулу =ЕСЛИ(И(A2=A1;B2=B1+5);"НАШЁЛ";0), В ячейке C3  записываем формулу =ЕСЛИ(И(A3=A2;ИЛИ(B3=B2+5;B3=B1+5));"НАШЁЛ";0), В ячейке C4  записываем формулу =ЕСЛИ(И(A4=A3;ИЛИ(B4=B3+5;B4=B2+5;B4=B1+5));"НАШЁЛ";0), В ячейке C5  записываем формулу =ЕСЛИ(И(A5=A4;ИЛИ(B5=B4+5;B5=B3+5;B5=B2+5;B5=B1+5));"НАШЁЛ";0), В ячейке C6  записываем формулу =ЕСЛИ(И(A6=A5;ИЛИ(B6=B5+5;B6=B4+5;B6=B3+5;B6=B2+5;B6=B1+5));"НАШЁЛ";0) и растягиваем её на диапазон [C6 : C10000]  . Наводим курсор на столбец C  , нажимаем на Главная ⇒ Сортировка и фильтр ⇒ Фильтр. Сортируем столбец C  по критерию "НАШЁЛ". Видим, что наименьший номер ряда — 2  , а наибольшее место —   74  .

Решение 2 (Python)

f = open(’Задание_26__mixo.txt’)
n = int(f.readline())
max_row = 0
max_seat = 0
for i in range(n):
    x, y = map(int, f.readline().split())
    max_row = max(max_row, x)
    max_seat = max(max_seat, y)
a = []
for i in range(max_row+1):
    a.append([0]*(max_seat+1))
f.close()
f = open(’Задание_26__mixo.txt’)
n = int(f.readline())
for i in range(n):
    x, y = map(int, f.readline().split())
    a[x][y] = 1
maxim = 0
for i in range(max_row+1):
    for j in reversed(range(max_seat)):
        if a[i][j] == 1 and a[i][j-5] == 1:
            maxim = j - 1
            break
    if maxim != 0:
        print(i, maxim)
        break

Ответ: 2 74

Ошибка.
Попробуйте повторить позже

Задача 12#24010

Задание выполняется с использованием прилагаемых файлов

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

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

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

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

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

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

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

Пример входного файла:

7

1 2

2 3

3 6

2 4

1 3

2 5

2 4

При таких исходных данных имеется три группы светлых точек: в позициях 2− 3  ряда 1  , в позициях 3 − 5  ряда 2  и в позиции 6  ряда 3  . Самая длинная группа длины 3  находится во 2  ряду. Ответ: 3 2  .

Вложения к задаче
Показать ответ и решение

Решение 1 (Excel/LibreOffice)
Откроем текстовый документ, скопируем значения и перенесем их в Excel или LibreOffice.
Воспользуемся настраиваемой сортировкой, на первый уровень расположим столбец A  (по возрастанию), на второй - столбец B  (по возрастанию). Выделим полностью столбцы A и B , перейдём в раздел "Данные"и нажимаем на инструмент "Удалить дубликаты в появившемся окне выбираем "Выделить все"и нажимаем "ОК"(это удалит частицы, которые были по ошибке сняты дважды). В ячейку C1  запишем 1  , а в C2  - формулу =ЕСЛИ(И(A2=A1;B2-1=B1);C1+1;1), скопируем её на все свободные клеточки этого столбца. Находим максимальную длину группы точек в столбце C  и номер ряда, в котором эта группа встречается. Выписываем этот номер и наименьший номер ряда, где нашлись обозначенные в задаче точки.

Решение 2 (Python)

f = open(’Задание_26__lood__rjlq.txt’)
n = int(f.readline())
a = [[0] * 10001 for j in range(10001)]
maxim = 0
row = 0
for i in range(n):
    x, y = [int(s) for s in f.readline().split()]
    a[x][y] = 1
for i in range(10001):
    counter = 0
    for j in range(10001):
        if a[i][j] == 1:
            counter += 1
        else:
            counter = 0
        if counter > maxim:
            maxim = counter
            row = i
print(maxim, row)

Ответ: 2 29
Рулетка
Вы можете получить скидку в рулетке!