Advertisement
Guest User

email

a guest
Jan 15th, 2019
400
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.12 KB | None | 0 0
  1. D. email
  2. Ограничение времени 1 секунда
  3. Ограничение памяти 64Mb
  4. Ввод email.in
  5. Вывод email.out
  6. Адрес электронной почты имеет формат user@domain.top, где user — имя пользователя, domain — домен второго уровня, а top — домен верхнего уровня. В данной задаче мы считаем, что все три составляющие адреса электронной почты являются непустыми строками, состоящими из маленьких латинских букв, при этом длины имени пользователя и домена второго уровня не превышают 10 символов, в длина домена верхнего уровня не превышает 4 символов. Например, корректными адресами считаются vasya@pupkin.info и raz@dva.tri, а адреса sashenka3@mail.ru и el@psy.kangaroo корректными не считаются. Назовём два адреса электронной почты полностью различными, если у них отличаются все три составляющие — имя пользователя, домен второго уровня и домен верхнего уровня. Напишите программу, которая по заданному списку адресов электронной почты определит число полностью различных пар адресов.
  7.  
  8. Формат ввода
  9. В первой строке входного файла email.in дано число n — число адресов в списке (1 ≤ n ≤ 100 000). В каждой из последующих n строк дано по одному адресу электронной почты, согласно формату, описанному в условии задачи. Гарантируется, что любые две строки входного файла попарно различны.
  10.  
  11. Формат вывода
  12. В выходной файл email.out выведите одно целое число — количество полностью различных пар адресов.
  13.  
  14. #Input
  15. 5
  16. ivanov@xmail.com
  17. pertov@mamail.ru
  18. sidorov@paramail.de
  19. ivanov@paramail.org
  20. pertov@babail.com
  21. #Output
  22. 6
  23. #Моё решение
  24. with open('email.in','r') as fin:
  25. n=int(fin.readline())
  26. emails=list(map(lambda s:s.strip(),fin.readlines()))
  27. for i in range(n):
  28. user=emails[i][:emails[i].find('@')]
  29. domain=emails[i][emails[i].find('@')+1:emails[i].find('.')]
  30. top=emails[i][emails[i].find('.')+1:]
  31. emails[i]=[user,domain,top]
  32. #emails.sort()
  33. #print(emails)
  34. c=0
  35. for i in range(n):
  36. j=i+1
  37. user=emails[i][0]
  38. domain=emails[i][1]
  39. top=emails[i][2]
  40. while j<n:
  41. if (emails[j][2]!=top) and (emails[j][0]!=user) and (emails[j][1]!=domain):
  42. c+=1
  43. j+=1
  44. with open('email.out','w') as fout:
  45. print(c,file=fout)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement