Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- D. email
- Ограничение времени 1 секунда
- Ограничение памяти 64Mb
- Ввод email.in
- Вывод email.out
- Адрес электронной почты имеет формат user@domain.top, где user — имя пользователя, domain — домен второго уровня, а top — домен верхнего уровня. В данной задаче мы считаем, что все три составляющие адреса электронной почты являются непустыми строками, состоящими из маленьких латинских букв, при этом длины имени пользователя и домена второго уровня не превышают 10 символов, в длина домена верхнего уровня не превышает 4 символов. Например, корректными адресами считаются vasya@pupkin.info и raz@dva.tri, а адреса sashenka3@mail.ru и el@psy.kangaroo корректными не считаются. Назовём два адреса электронной почты полностью различными, если у них отличаются все три составляющие — имя пользователя, домен второго уровня и домен верхнего уровня. Напишите программу, которая по заданному списку адресов электронной почты определит число полностью различных пар адресов.
- Формат ввода
- В первой строке входного файла email.in дано число n — число адресов в списке (1 ≤ n ≤ 100 000). В каждой из последующих n строк дано по одному адресу электронной почты, согласно формату, описанному в условии задачи. Гарантируется, что любые две строки входного файла попарно различны.
- Формат вывода
- В выходной файл email.out выведите одно целое число — количество полностью различных пар адресов.
- #Input
- 5
- ivanov@xmail.com
- pertov@mamail.ru
- sidorov@paramail.de
- ivanov@paramail.org
- pertov@babail.com
- #Output
- 6
- #Моё решение
- with open('email.in','r') as fin:
- n=int(fin.readline())
- emails=list(map(lambda s:s.strip(),fin.readlines()))
- for i in range(n):
- user=emails[i][:emails[i].find('@')]
- domain=emails[i][emails[i].find('@')+1:emails[i].find('.')]
- top=emails[i][emails[i].find('.')+1:]
- emails[i]=[user,domain,top]
- #emails.sort()
- #print(emails)
- c=0
- for i in range(n):
- j=i+1
- user=emails[i][0]
- domain=emails[i][1]
- top=emails[i][2]
- while j<n:
- if (emails[j][2]!=top) and (emails[j][0]!=user) and (emails[j][1]!=domain):
- c+=1
- j+=1
- with open('email.out','w') as fout:
- print(c,file=fout)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement