Top.Mail.Ru
Ответы
Аватар пользователя
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Нужна помощь по информатике.

СРОЧНО!!! Помогите пожалуйста с задачей по информатике. Вот условие:


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

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

Как известно, словарь состоит из переводимых слов, к каждому из которых приводится несколько слов-переводов. Для каждого латинского слова, встречающегося где-либо в словаре, Вася предлагает найти все его переводы (то есть все английские слова, для которых наше латинское встречалось в его списке переводов), и считать их и только их переводами этого латинского слова.

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

В первой строке содержится единственное целое число N — количество английских слов в словаре. Далее следует N описаний. Каждое описание содержится в отдельной строке, в которой записано сначала английское слово, затем отделённый пробелами дефис, затем разделённые запятыми с пробелами переводы этого английского слова на латинский. Все слова состоят только из маленьких латинских букв. Переводы отсортированы в лексикографическом порядке. Порядок следования английских слов в словаре также лексикографический.

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




Вот тесты:
дано:
3
apple - malum, pomum, popula
fruit - baca, bacca, popum
punishment - malum, multa

вывести:
7
baca - fruit
bacca - fruit
malum - apple, punishment
multa - punishment
pomum - apple
popula - apple
popum - fruit


дано:
6
drxpeycnkp - fgoezltv, fgqedltc, fgqezltc, fsqezltc, tgqehltc
oaxpeycnkp - fgqedltc, pgqezltu, tgqehltc
yaxpefcnkr - fgqedltc, fgqezljc, fgqezlqc, fgqezltc, tgqehltc
yaxpeycnkp - fgqedltc, fgqezlqc, fsqezltc
yaxpeycnks - fgqedltc, fsqezltc, pgqezltu
yaxteyckp - fgqedltc, fgqezljc, fgqezlqc, fsqezltc, pgqezltu


вывести:
8
fgoezltv - drxpeycnkp
fgqedltc - drxpeycnkp, oaxpeycnkp, yaxpefcnkr, yaxpeycnkp, yaxpeycnks, yaxteyckp
fgqezljc - yaxpefcnkr, yaxteyckp
fgqezlqc - yaxpefcnkr, yaxpeycnkp, yaxteyckp
fgqezltc - drxpeycnkp, yaxpefcnkr
fsqezltc - drxpeycnkp, yaxpeycnkp, yaxpeycnks, yaxteyckp
pgqezltu - oaxpeycnkp, yaxpeycnks, yaxteyckp
tgqehltc - drxpeycnkp, oaxpeycnkp, yaxpefcnkr



Короче я написал код:
d=dict()
c=0
et=[]
lt=[]
n=int(input())
for i in range(n):
a=input().split()
et.append(a[0])
lt.append(a[2:])
for i in lt:
for j in i:
c+=1
print(c)
for i in range(len(sorted(lt))):
for j in (lt[i]):
d.update(dict({j.replace(',',''):et[i]}))
for k,v in d.items():
print(k,'-',str(v))

надеюсь понятно
не работает только то, что нужно выводить несколько значений после например:
malum-apple,punishment
выводит только punishment


и цифра которая должна стоять в начале вывода пользователем неправильная

По дате
По рейтингу