Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/21: Рейтинг темы: голосов - 21, средняя оценка - 4.76
1 / 1 / 0
Регистрация: 30.04.2019
Сообщений: 7

Линейка

22.12.2019, 09:16. Показов 4271. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В школе N классов с номерами от 1 до N, в каждом из которых M учеников. Однажды перед уроками все ученики школы выстроились в линейку. Однако в каждом классе нашлись опоздавшие, которые, чтобы быть менее заметными, по мере подхода к линейке занимали в ней места не рядом, а через промежутки, соответствующие номеру своего класса. Например, все опоздавшие из 3 класса вставали на места с номерами 3, 6, 9 и так далее, при этом всем остальным приходилось сдвигаться вправо (гарантируется, что это всегда возможно). Первыми к линейке подошли опоздавшие из 1 класса, дальше из второго и так далее. После того, как все опоздавшие заняли свои места в линейке, к ней вышел директор школы, выбрал каждого K-го ученика начиная с конца и увёл к себе в кабинет для воспитательной беседы. Определите, сколько опоздавших из каждого класса оказалось в кабинете директора.

Формат ввода
В первой строке вводится три натуральных числа N, M и K, не превышающих 1000.
Во второй строке через пробел вводится N целых неотрицательных чисел — количество опоздавших в каждом классе.

Формат вывода
Программа должна вывести одно N чисел, разделённых пробелами — количество опоздавших учеников из каждого класса, оказавшихся в кабинете директора.

Пример 1
Ввод Вывод
3 4 2 1 1 2
1 2 3

Пример 2
Ввод Вывод
2 10 5 000
0 1

Примечания
Первый тест проиллюстрирован на картинке ниже.

По моему коду выставляет 3.8/10 баллов
Можете заново написать код или исправить мой, пожалуйста
Python
1
2
3
4
5
6
7
8
9
10
11
12
ttt = input().split()
n, m, k = int(ttt[0]), int(ttt[1]), int(ttt[2])
a = [int(i) for i in input().split()]
b = []
for i in range(n):
    for j in range(m - a[i]):
        b.append([i + 1, 0])
for i in range(1, n + 1):
    for j in range(i - 1, i * a[i - 1], i):
        b = b[:j] + [[i, 1]] + b[j:]
f = [b[i][0] for i in range(0, n * m, k) if b[i][1] == 1]
print(' '.join([str(f.count(i)) for i in range(1, n + 1)]))
Миниатюры
Линейка  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.12.2019, 09:16
Ответы с готовыми решениями:

линейка i7
как бодобрать ноут с диагональю 14 и с самым быстрым i7 c ценой до 30т.р. Пожелания насчет елки и не уколоться не воспринимаются.

Линейка
Расположите линейку таким образом, чтобы ее концы легли на Ваши указательные пальцы. Теперь двигайте пальцы по направлению друг к другу. Вы...

Линейка
Как зделать ленейку которая показывает росстояние в сантиметрах?

5
0 / 0 / 0
Регистрация: 22.12.2019
Сообщений: 1
22.12.2019, 23:41
Если найдешь код с большим количеством баллов - будь добр, скинь сюда, у меня тоже на тесте 5 ломается и 3.8 баллов получаю.
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
23.12.2019, 09:20
Попробуйте решить задачу с конца.
Code
1
2
3
4
5
6
7
8
9
3 4 2
1 2 3
[0, 0, 0, 3, 0, 0, 3, 0, 0, 3, 0, 0, 0]
[0, 0, 2, 3, 0, 2, 3, 0, 0, 3, 0, 0, 0]
[0, 1, 2, 3, 0, 2, 3, 0, 0, 3, 0, 0, 0]
 
[0, 1, 2, 3, 1, 2, 3, 1, 1, 3, 0, 0, 0]
[0, 1, 2, 3, 1, 2, 3, 1, 1, 3, 2, 2, 0]
[0, 1, 2, 3, 1, 2, 3, 1, 1, 3, 2, 2, 3]
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
5 7 2
1 2 3 4 5
[0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 5, 0, 0, 0, 0, 5, 0, 0, 0, 0, 5, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 4, 5, 0, 0, 0, 4, 5, 0, 0, 0, 4, 5, 0, 0, 0, 4, 5, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 3, 4, 5, 0, 0, 3, 4, 5, 0, 0, 3, 4, 5, 0, 0, 0, 4, 5, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 2, 3, 4, 5, 0, 2, 3, 4, 5, 0, 0, 3, 4, 5, 0, 0, 0, 4, 5, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 1, 2, 3, 4, 5, 0, 2, 3, 4, 5, 0, 0, 3, 4, 5, 0, 0, 0, 4, 5, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
 
[0, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 1, 3, 4, 5, 1, 1, 1, 4, 5, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 1, 3, 4, 5, 1, 1, 1, 4, 5, 2, 2, 2, 2, 5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 1, 3, 4, 5, 1, 1, 1, 4, 5, 2, 2, 2, 2, 5, 2, 3, 3, 3, 3, 0, 0, 0, 0, 0]
[0, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 1, 3, 4, 5, 1, 1, 1, 4, 5, 2, 2, 2, 2, 5, 2, 3, 3, 3, 3, 4, 4, 4, 0, 0]
[0, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 1, 3, 4, 5, 1, 1, 1, 4, 5, 2, 2, 2, 2, 5, 2, 3, 3, 3, 3, 4, 4, 4, 5, 5]
0
 Аватар для Brumbar
13 / 11 / 1
Регистрация: 24.11.2019
Сообщений: 18
24.12.2019, 18:07
Цитата Сообщение от eaa Посмотреть сообщение
Попробуйте решить задачу с конца.
Все равно валится на этом 5 тесте, можно поподробнее
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
24.12.2019, 21:10
3 4 2
1 2 3
заводим массив размера (N*M + 1)
[0, 0, 0, 3, 0, 0, 3, 0, 0, 3, 0, 0, 0] - заполняем 3ми через 2 нулевых элемента начиная с 1й элемента(3шт)
[0, 0, 2, 3, 0, 2, 3, 0, 0, 3, 0, 0, 0] - заполняем 2ми через 1 нулевой начиная с 1й элемента (2шт)
[0, 1, 2, 3, 0, 2, 3, 0, 0, 3, 0, 0, 0] - заполняем 1ми через 0 нулевых элементов начиная с 1й элемента (1шт)

Далее заводите массив размера (N+1) и заносите в него подсчет с конца с заданным шагом.
Ответ выводите массив начиная с 1го элемента.

[*, 1, *, 3, *, 2, *, 0, *, 3, *, 0, *]

1 ученик из 1 класса
1 ученик из 2 класса
2 ученика из 3 класса

Ответ:
1 1 2
1
17 / 12 / 5
Регистрация: 22.10.2019
Сообщений: 62
24.12.2019, 22:15
как заполнять этот массив
Цитата Сообщение от eaa Посмотреть сообщение
заводим массив размера (N*M + 1)
[0, 0, 0, 3, 0, 0, 3, 0, 0, 3, 0, 0, 0] - заполняем 3ми через 2 нулевых элемента начиная с 1й элемента(3шт)
[0, 0, 2, 3, 0, 2, 3, 0, 0, 3, 0, 0, 0] - заполняем 2ми через 1 нулевой начиная с 1й элемента (2шт)
[0, 1, 2, 3, 0, 2, 3, 0, 0, 3, 0, 0, 0] - заполняем 1ми через 0 нулевых элементов начиная с 1й элемента (1шт)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.12.2019, 22:15
Помогаю со студенческими работами здесь

Линейка i7 vs i5
Кто, что выбирает и для каких целей?Все за и против. список: i7 980x -6-ти ядерник i7 9xx , 8xx -4-х ядерник i5 7xx- 4-х ядерник ...

Линейка в фотошопе
как включить эту линейку???????

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

Вертикальная линейка
Приветствую! Пытаюсь сделать линейку на css. С горизонтальной проблем нет. #ruler { overflow: hidden; font-family: monospace; ...

Динамическая линейка
Доброго времени суток! Уважаемые форумчане, очень нужна ваша помощь. Я в js не очень силен, а точнее по знаниям ближе к нулю. Знаю как...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru