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

Группировка студентов по группам

16.03.2023, 09:15. Показов 2168. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста решить задачу

Входной файл: input.txt Ограничение времени: 1 сек
Выходной файл: output.txt Ограничение памяти: 512 Мб
Максимальный балл: 100

Условие
Необходимо написать программу, которая группирует студентов по их группам.

Формат входного файла
В первой строке входного файла дано число
n — количество студентов. Далее следует
n строк, в каждой из которых записаны группа и имя студента.

Группа и имя студента разделены символом табуляции.

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

Сами группы следуют также в алфавитном порядке.

Ограничения
1≤n≤105
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.03.2023, 09:15
Ответы с готовыми решениями:

Группировка по группам, а данные через запятую
Добрый вечер! Прошу подсказать, как отобразить сгруппированные данные по группам через запятую и через знак +. Имеются данные: ФИО,...

Распределение студентов по группам
Всем привет. Столкнулся с проблемой, надо распределить студентов в базе данных на 3 группы. Технари, гуманитарии и заочники. У технари...

Распределить студентов по группам
"Группы". Выполняя программу "Обмен студентами", университету необходимо создать n групп студентов. В каждой группе должны быть...

2
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38178 / 21113 / 4307
Регистрация: 12.02.2012
Сообщений: 34,716
Записей в блоге: 14
16.03.2023, 09:48
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def foo(inp,out):
    with open(inp,"r") as fi:
        n=int(fi.readline())
        tot={}
        for _ in range(n):
            g,student = fi.readline().split(" ")
            l=len(student)
            student=student[0:l-1]
            if tot.get(g) is None:
                tot[g]=[student]
            else:
                tot[g].append(student)
 
    with open(out,"w") as fo:
        for g in sorted(tot.keys()):
            print(g,file=fo)
            for s in sorted(tot[g]):
                print(s,file=fo)
 
foo("111.txt","222.txt")
Файл 111.txt

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
21
ASD11 Кошкин
BSD12 Мышкин
QWE23 Булкин
ASD11 Рыбкин
BSD12 Козлов
QWE23 Внучкин
ASD11 Колобков
BSD12 Машкин
QWE23 Бабкин
ASD11 Выбегалло
BSD12 Амперян
QWE23 Серосовин
ASD11 Каммерер
BSD12 Ростиславцев
QWE23 Ойра-Ойра
ASD11 Привалов
BSD12 Корнеев
QWE23 Хунта
ASD11 Камноедов
BSD12 Мерлин
QWE23 Невструев
Результат:

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
ASD11
Выбегалло
Каммерер
Камноедов
Колобков
Кошкин
Привалов
Рыбкин
BSD12
Амперян
Козлов
Корнеев
Машкин
Мерлин
Мышкин
Ростиславцев
QWE23
Бабкин
Булкин
Внучкин
Невструев
Ойра-Ойра
Серосовин
Хунта
0
 Аватар для Semen-Semenich
5233 / 3478 / 1175
Регистрация: 21.03.2016
Сообщений: 8,305
16.03.2023, 14:19
Python
1
2
3
4
5
6
7
8
9
10
def foo(inp,out):
    tot = {}
    with open(inp,"r") as fi, open(out,"w") as fo:
        for _ in range(int(fi.readline())):
            key, val = fi.readline().split(" ")
            tot.setdefault(key, []).append(val)
        for key in sorted(tot):
            fo.write(f"{key}\n{''.join(sorted(tot.get(key)))}")
            
foo('111.txt',"222.txt")
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.03.2023, 14:19
Помогаю со студенческими работами здесь

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

Вывести списки студентов по группам
Помогите пожалуйста в задаче, во условие: Написать программу формирования сведения об успеваемости студентов. Каждая запись этой...

Отсортировать список студентов по годам и по группам
Нужно написать программу с++:(Массивы)Есть группа студентов из 10 человек.С 1999 года до 2003.Нужно вывести все года на экран и найти самых...

Распределить 15 студентов по трем учебным группам
сколькими способама можно распределить 15 студентов по трем учебным группам по пять студентов в каждой.

Структуры: вывести фамилии студентов по группам успеваемости
Ввести в произвольном порядке сведения о студентах группы. Вывести фамилии студентов по группам: успевают "хорошо",...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru