Задача А. Логика выбора
Задачу добавил: alef
Успешно сдано решений: 28
Три абитуриента — Николай, Олег и Павел — уже давно спорили, какую специальность лучше выбрать. Всем им нравилось программировать, но вот рассуждали они по-разному.
— Почти все необходимое я уже знаю! — уверенно говорил Олег. Он уже работал web-мастером, и на его "боевом счету" было несколько сайтов. — Я — практик! А что у специальности "М" в учебном плане? Одна математика! Зачем она мне? Вот то ли дело специальность "А" — тут и HTML, и JavaScript, и PHP...
— Разве ты не знаешь эти языки? — спросил его Павел.
— Конечно знаю! И мне не надо будет терять время, просиживая на лекциях. В это время я буду работать, осваивать все нужное на практике. А в сессию просто приду и сдам экзамены.
— Ну, одни сайты — это неинтересно, — вмешался в разговор Николай. — Вот специальность "П" мне нравится куда больше — здесь, например, линейное программирование изучают. Я вот не знаю, что это такое. А если хочу потом работать в ИТ-отрасли, наверное, надо и это знать.
— Учить надо то, что точно пригодится. Что-то я не видел объявлений "приглашаем на работу специалиста по линейному программированию". А вот, скажем, специалисты по 1С нужны, — снисходительно заметил Олег.
— А я, пожалуй, подам документы на специальность "М", — сказал Павел. — Выучить язык программирования несложно — после школьного Паскаля я уже немного разобрался в Питоне и начал изучать С++. Берешь толковую книгу с примерами, садишься за компьютер... А вот с математикой так не получается. Так что пусть меня научат тому, чему сложнее всего научиться самостоятельно.
Каждый из абитуриентов решил выбирать специальность таким образом, чтобы отношение количества интересующих его предметов к общему количеству предметов, изучаемых на данной специальности, было наибольшим.
По заданным описаниям специальностей и представлениям абитуриентов о том, чему они хотели бы научиться, определите, на какую специальность подаст документы каждый из них.
Формат входного файла input.txt
Первая строка содержит целое число O — количество предметов, которые, как ему кажется, знает Олег
Каждая из следующих O строк содержит по одному названию предмета в строке. Считайте, что название может содержать латинские буквы, цифры и символы подчеркивания (вместо пробелов) и всегда начинается с буквы.
Следующая за ними строка содержит целое число N — количество предметов, которые Николай относит к интересующей его категории "Информационные технологии"
Идущие за ней N строк содержат по одному названию предмета в строке.
Следующая строка содержит целое число P — количество предметов, которые Павел относит к тем, которые он не может изучить самостоятельно.
Идущие за ней P строк содержат по одному названию предмета в строке.
Следующая строка содержит целое число S — количество специальностей.
За ней следуют S описаний специальностей, каждое из которых составлено по образцу:
первая строка описания содержит целое число Uj (j = 1, 2, ..., S) — количество предметов в описании, а затем следует Uj строк, в каждой из которых записано по одному названию предмета (в рамках одной специальности названия предметов уникальны).
Ограничения:
2 <= S, Uj <= 500; при этом суммарное количество разных предметов на разных специальностях не превосходит 1000
2 <= O, N, P <= 300
Все строки не длиннее 256 символов, размер входного файла не превосходит 4 Мб
Формат выходного файла output.txt
Первая строка — три целых числа через пробел — номера специальностей, которые выберут Олег, Николай и Павел (именно в таком порядке).
Если кому-то из абитуриентов одинаково подходят несколько специальностей, выведите ту, у которой номер меньше.
Пример входного файла
6
PHP
JavaScript
HTML
CSS
Operacionnye_Sistemy
Programmirovanie_v_Delphi
8
Informatika
Operacionnye_Sistemy
Lineynoe_programmirovanie
Programmirovanie_v_Delphi
Diskretnaya_matematika
Dinamicheskoe_Programmirovanie
Bazy_dannyh_i_expertnye_sistemy
Kriptoprotokoly
7
Matematicheskiy_Analiz
Differencialnaya_Geometriya
Tenzorny_Analiz
Teoriya_Funkciy_Kompleksnyh_Peremennyh
Funkcionalny_Analiz
Topologiya
Optimalnoe_upravlenie
5
32
Matematicheskiy_Analiz
Analiticheskaya_Geometriya
Differencialnye_Uravneniya
Matematicheskaya_Logika
Diskretnaya_matematika
Teoriya_Veroyatnostey
Informatika
Yazyki_Programmirovaniya
Operacionnye_Sistemy
Bazy_dannyh_i_expertnye_sistemy
Skriptovye_Yazyki
Administrirovanie_informacionnyh_sistem
Kompyuternaya_grafika
Teoriya_kompilyacii
Cplusplus
Java_technologii
PHP
JavaScript
HTML
CSS
Programmirovanie_v_Delphi
Fizika
Fizkultura
Istoriya
Filosofiya
Ekonomika
Sociologiya
Chislennye_Metody
Struktury_i_algoritmy_komputernoy_obrabotki_dannyh
Pravo_v_oblasti_IT
Apparatnye_sredstva
Tehnologiya_razrabotki_PO
21
Matematicheskiy_Analiz
Analiticheskaya_Geometriya
Differencialnaya_Geometriya
Vektorny_Analiz
Tenzorny_Analiz
Funkcionalny_Analiz
Differencialnye_Uravneniya
Uravneniya_Matematicheskoy_Fiziki
Diskretnaya_matematika
Teoriya_Veroyatnostey
Teoriya_Sluchaynyh_Processov
Informatika
Yazyki_Programmirovaniya
Operacionnye_Sistemy
Bazy_dannyh_i_expertnye_sistemy
Fizika
Fizkultura
Istoriya
Filosofiya
Ekonomika
Chislennye_Metody
28
Matematicheskiy_Analiz
Algebra
Analiticheskaya_Geometriya
Vektorny_Analiz
Funkcionalny_Analiz
Differencialnye_Uravneniya
Uravneniya_Matematicheskoy_Fiziki
Matematicheskaya_Logika
Diskretnaya_matematika
Teoriya_Veroyatnostey
Teoriya_Sluchaynyh_Processov
Optimalnoe_upravlenie
Teoriya_Funkciy_Kompleksnyh_Peremennyh
Informatika
Yazyki_Programmirovaniya
Operacionnye_Sistemy
Bazy_dannyh_i_expertnye_sistemy
Kompyuternaya_grafika
Java_technologii
Lineynoe_programmirovanie
Dinamicheskoe_Programmirovanie
Fizika
Fizkultura
Istoriya
Filosofiya
Ekonomika
Politologya
Chislennye_Metody
31
Matematicheskiy_Analiz
Algebra
Geometriya
Analiticheskaya_Geometriya
Differencialnaya_Geometriya
Topologiya
Funkcionalny_Analiz
Differencialnye_Uravneniya
Uravneniya_Matematicheskoy_Fiziki
Matematicheskaya_Logika
Diskretnaya_matematika
Kombinatorika
Teoriya_Veroyatnostey
Teoriya_Sluchaynyh_Processov
Optimalnoe_upravlenie
Teoriya_Funkciy_Kompleksnyh_Peremennyh
Informatika
Yazyki_Programmirovaniya
Operacionnye_Sistemy
Bazy_dannyh_i_expertnye_sistemy
Lineynoe_programmirovanie
Dinamicheskoe_Programmirovanie
Fizika
Fizkultura
Istoriya
Filosofiya
Ekonomika
Politologya
Psihologiya
Pedagogika
Chislennye_Metody
31
Matematicheskiy_Analiz
Algebra
Geometriya
Funkcionalny_Analiz
Differencialnye_Uravneniya
Uravneniya_Matematicheskoy_Fiziki
Matematicheskaya_Logika
Diskretnaya_matematika
Kombinatorika
Optimalnoe_upravlenie
Informatika
Yazyki_Programmirovaniya
Operacionnye_Sistemy
Bazy_dannyh_i_expertnye_sistemy
Skriptovye_Yazyki
Kompyuternaya_grafika
Cplusplus
Java_technologii
PHP
JavaScript
Kriptoprotokoly
Fizika
Fizkultura
Istoriya
Filosofiya
Ekonomika
Russkiy_Yazyk
Kraevedenie
Pravo_v_oblasti_IT
Apparatnye_sredstva
Komputernye_seti_i_protokoly
Пример выходного файла
1 3 4