Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.65/190: Рейтинг темы: голосов - 190, средняя оценка - 4.65
0 / 0 / 0
Регистрация: 04.12.2019
Сообщений: 5

Пирамида из кубиков

05.12.2019, 18:11. Показов 37883. Ответов 11

Студворк — интернет-сервис помощи студентам
Прошу, помогите! Не могу могу сделать уже третий день. Код не прикладываю, т.к. пробовал абсолютно по-разному, но все безрезультатно.

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

Хоть Антон пока не особо разбирается в математике, но интуитивно чувствует, что устойчивая пирамида получится только в том случае, если каждый следующий кубик будет не больше предыдущего.

Напишите программу, которая принимает на вход целое число n - количество раундов игры Антона, а затем n строк, в каждой из которых находятся последовательности целых чисел, записанных через пробел - стороны кубиков, которые выстроены в ряд. Программа должна выводить для каждого раунда стороны кубиков, записанные через пробел, для получившейся пирамиды, если ее можно сделать, руководствуясь правилами игры; или слово НЕТ, если построение устойчивой пирамиды невозможно.

Формат ввода
Целое число n - количество раундов игры n строк со сторонами кубиков в ряду, записанными через пробел

Формат вывода
Для каждого раунда игры - стороны кубиков в получившейся пирамиде, записанные через пробел (основание - первое число, вершина - последнее), либо строка НЕТ, если построение устойчивой пирамиды невозможно

Пример 1
Ввод
2
4 3 2 1 3 4
1 3 2
Вывод
4 4 3 3 2 1
НЕТ
Пример 2
Ввод
3
10 5 4 3 5 7 6
1
3 2 1 3 2 1
Вывод
НЕТ
1
НЕТ
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.12.2019, 18:11
Ответы с готовыми решениями:

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

Пирамида из кубиков
Далеко не все дети умеют себя развлекать самостоятельно, но у пятилетнего Антона такой проблемы нет. Например, сегодня он придумал новую...

Пирамида из кубиков
Здравствуйте! Есть N кубиков. Посчитать, сколькими способами из них можно выстроить пирамиду Важно: каждый вышележащий слой пирамиды НЕ...

11
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
05.12.2019, 19:26
sch771551,
Найти индекс минимального. проверить отсортирован ли массив слева по убыванию, а справа по возрастанию (2 строки кода).
Нет?

Добавлено через 1 минуту
А, и если условие выполнено, вывести отсортированный по убыванию список.
1
0 / 0 / 0
Регистрация: 04.12.2019
Сообщений: 5
05.12.2019, 20:27  [ТС]
Цитата Сообщение от eaa Посмотреть сообщение
sch771551,
Найти индекс минимального. проверить отсортирован ли массив слева по убыванию, а справа по возрастанию (2 строки кода).
Нет?

Добавлено через 1 минуту
А, и если условие выполнено, вывести отсортированный по убыванию список.
Цитата Сообщение от eaa Посмотреть сообщение
проверить отсортирован ли массив слева по убыванию, а справа по возрастанию (2 строки кода)
Считай меня кем угодно, но каким образом?

Добавлено через 9 минут
По идее же так:
Python
1
2
3
    a = input().split()
    ind = a.index(min(a))
    if a[:ind].sort(reverse=True) == a[:ind] and a[(ind + 1):].sort() == a[ind:]:
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
05.12.2019, 21:11
Лучший ответ Сообщение было отмечено sch771551 как решение

Решение

Лучше так:
Python
1
2
3
4
a = [4, 3, 2, 1, 3, 4]
n = len(a)
ind = a.index(min(a))
print(all(a[i] >= a[i+1] for i in range(ind)) and all(a[i] <= a[i+1] for i in range(ind, n - 1)))
2
0 / 0 / 0
Регистрация: 04.12.2019
Сообщений: 5
05.12.2019, 23:06  [ТС]
Спасибо, чтобы ты понимал мой уровень, я настолько beginer, что вижу ALL в первый раз))
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
06.12.2019, 06:49
Цитата Сообщение от sch771551 Посмотреть сообщение
ALL в первый раз
Можно так:
Python
1
2
3
4
5
6
flag = True
for i in range(ind):
    flag &= a[i] >= a[i+1]
for i in range(ind, len(a)-1):
    flag &= a[i] <= a[i+1]
print(flag)
0
0 / 0 / 0
Регистрация: 20.11.2019
Сообщений: 30
06.12.2019, 14:50
а как с инпутами сделать то??

Ввод
2
4 3 2 1 3 4
1 3 2

Вывод
4 4 3 3 2 1
НЕТ
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
06.12.2019, 14:55
Python
1
2
3
for _ in range(int(input())):
    a = list(map(int, input().split()))
    ... #тут решение
0
0 / 0 / 0
Регистрация: 04.12.2019
Сообщений: 5
06.12.2019, 22:54  [ТС]
Python
1
2
3
4
5
6
7
8
9
for i in range(int(input())):
    a = input().split()
    ind = a.index(min(a))
    if (all(a[i] >= a[i + 1] for i in range(ind))
            and all(a[i] <= a[i + 1] for i in range(ind, len(a) - 1))):
        a.sort(reverse=True)
        print(' '.join(a))
    else:
        print('НЕТ')
0
1 / 1 / 0
Регистрация: 05.12.2021
Сообщений: 3
05.12.2021, 16:47
Python
1
2
3
4
5
6
7
8
for i in range(int(input())):
    arr = list(map(int, input().split()))
    f = arr[:len(arr) // 2]
    s = arr[len(arr) // 2:]
    if (f == sorted(f, reverse=True) and s == sorted(s)) or arr == sorted(arr) or arr == sorted(arr, reverse=True):
        print(*sorted(arr, reverse=True))
    else:
        print("НЕТ")
0
90 / 125 / 28
Регистрация: 17.10.2010
Сообщений: 1,332
05.12.2021, 21:44
Цитата Сообщение от eaa Посмотреть сообщение
Python
1
2
3
4
5
6
flag = True
for i in range(ind):
    flag &= a[i] >= a[i+1]
for i in range(ind, len(a)-1):
    flag &= a[i] <= a[i+1]
print(flag)
Почему ошибку выдает????
Миниатюры
Пирамида из кубиков  
0
Вирусоборец
 Аватар для thyrex
14450 / 7489 / 1582
Регистрация: 06.09.2009
Сообщений: 27,133
05.12.2021, 23:11
Цитата Сообщение от isaak Посмотреть сообщение
Почему ошибку выдает????
потому что Вы не соединили в единое целое все части программы, а вырвали из контекста темы только одно сообщение
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.12.2021, 23:11
Помогаю со студенческими работами здесь

Пирамида из кубиков
Создать программу Пирамида из кубиков Очень нужно, на кону зачёт

Пирамида из кубиков
Из одинаковых кубиков с ребром 1 см выкладывают пирамиду, k-тый слой которой (считая сверху) состоит из k^2 кубиков. Какой высоты...

Мальчик Петя строит из кубиков лестницу. Лестница представляет собой несколько строящихся рядом башенок из кубиков
Мальчик Петя строит из кубиков лестницу. Лестница представляет собой несколько строящихся рядом башенок из кубиков, каждая из которых ровно...

Найти минимальную разницу между количеством синих кубиков и количеством красных кубиков в раскраске
У Пети есть прямоугольный параллелепипед размером A×B×C, состоящий из кубиков размером 1×1×1. Петя хочет покрасить каждый из A×B ×C...

Определить количество деревянных кубиков с ребром 3см и количество металлических кубиков
Дорогие форумчане, помогите пожалуйста. Создать файл, содержащий сведения о кубиках: размер ребра; цвет; материал. В созданном файле...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru