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

В одной известной парагвайской компании

10.09.2019, 19:07. Показов 13718. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В одной известной парагвайской компании, называть которую мы не будем, потому что она не заплатила нам за рекламу, сотрудникам положена корпоративная почта. Обычно она формируется как <имя_фамилия>@untitled.py, но есть проблема тёзок. Можно, конечно, добавить ещё отчество, но и оно может совпадать. К тому же у компании есть офисы в разных странах, так что не у всех сотрудников в принципе есть отчества. Другой вариант — дать сотрудникам самим выбирать почту (и, соответственно, самим решать проблему повторов), но на это компания пойти не готова. Поэтому при занятом ящике было решено приписывать справа номер. Тогда первый Иван Иванов получает ящик ivan_ivanov@untitled.py (без номера), второй — ivan_ivanov1@untitled.py, третий — ivan_ivanov2@untitled.py и так далее. Нам дан список уже занятых ящиков в порядке их выдачи (номера к ящикам тёзок всегда выдаются без пропусков, никогда не «освобождаются» и не выдаются повторно) и имена-фамилии новых сотрудников в заранее подготовленном виде (латиницей и с подчёркиванием между ними). Наша задача — раздать корпоративные ящики.
Формат ввода
В первой строке записано целое неотрицательное число N — количество выданных ящиков. В следующих N строках перечислены сами ящики в порядке выдачи, по одному на строке. На следующей строке задано число M, также целое неотрицательное, — количество новых сотрудников, которым нужно раздать корпоративные ящики. Каждая из последующих M строк представляет собой имя и фамилию сотрудника в подготовленном к использованию формате.
Формат вывода
В качестве ответа выведите M строк — почтовые ящики для новых сотрудников в том порядке, в котором они раздавались.
Пример
Ввод Вывод
6
ivan_petrov@untitled.py
petr_ivanov@untitled.py
ivan_petrov1@untitled.py
ivan_ivanov@untitled.py
ivan_ivanov1@untitled.py
ivan_ivanov2@untitled.py
3
ivan_ivanov
petr_petrov
petr_ivanov
ivan_ivanov3@untitled.py
petr_petrov@untitled.py
petr_ivanov1@untitled.py
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.09.2019, 19:07
Ответы с готовыми решениями:

Известной акогольной компании срочно требуется Программист 1с (8)
ООО &quot;Мистраль алко&quot; (Москва) приглашает на работу Программиста 1С 8 Обязанности: Разработка модулей по тех. заданию Переработка...

Где больше заказов внутри одной компании, у компании на Java или на C#
Добрый день. Из моего опыта компания, которая пишет или писала проекты на Delphi как правило в среднем имеет 1-5 крупных проектов над...

Уравнение с одной не известной
проблема с уравнением ,хелп короче что мы имеем: a:-ничьи z:-победы x-проигрыши с:-общее кол-во боев b:-желаемый процент побед...

11
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
10.09.2019, 19:11
ArtemKostrigin, а проблема то в чем?
0
0 / 0 / 0
Регистрация: 10.09.2019
Сообщений: 2
10.09.2019, 19:16  [ТС]
Semen-Semenich, не имею малейшего представления, как сие решить
0
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
10.09.2019, 19:47
тупо собрав все существующие адреса в список, в цикле получив новое имя склеить к нему домен "@untitled.py" получив полный адрес, в теле цикла завести счетчик с стартом в 1 а затем в цикле while проверять на совпадение в списке и при совпадении опять разложить адрес добавить после имени счетчик затем увеличить счетчик на 1, как совпадений не будет цикл завершаем и выводим результат
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2696 / 1602 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
11.09.2019, 10:58
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# -*- coding: utf-8 -*-
 
n = int(input("n = "))
emails = [input() for _ in range(n)]
 
m = int(input("m = "))
names = [input for _ in range(m)]
 
for name in names:
    index = ""
    while True:
        email = "%s%s@untitled.py" % (name, index)
        if email not in emails:
            emails.append(email)
            print(email)
            break
        index = index + 1 if index else 1
0
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
11.09.2019, 15:44
Python
1
2
3
4
5
6
7
8
9
list_mail = [input() for _ in range(int(input()))]
for _ in range(int(input())):
    number = 1
    name = input()
    mail = f'{name}@untitled.py'
    while mail in list_mail: 
        mail = f'{name}{number}@untitled.py'
        number += 1
    print(mail)
2
11 / 10 / 1
Регистрация: 02.03.2019
Сообщений: 16
21.09.2019, 20:47
Не проходит с этим тестом

3
dmirtiy_dmitriev@untitled.py
roman_romanov@untitled.py
stepan_stepanov@untitled.py
4
roman_romanov
roman_romanov
roman_romanov
roman_romanov

Должен выводить

roman_romanov1@untitled.py
roman_romanov2@untitled.py
roman_romanov3@untitled.py
roman_romanov4@untitled.py

А выводит

roman_romanov1@untitled.py
roman_romanov1@untitled.py
roman_romanov1@untitled.py
roman_romanov1@untitled.py

Как можно исправить?
0
 Аватар для Semen-Semenich
5237 / 3481 / 1176
Регистрация: 21.03.2016
Сообщений: 8,310
22.09.2019, 10:04
Цитата Сообщение от Rouzi Посмотреть сообщение
Как можно исправить?
сохранять новый адрес в список адресов.
0
11 / 10 / 1
Регистрация: 02.03.2019
Сообщений: 16
24.09.2019, 19:34
Python
1
2
3
4
5
6
7
8
9
10
list_mail = [input() for _ in range(int(input()))]
number = 1
for _ in range(int(input())):
    name = input()
    mail = f'{name}@untitled.py'
    while mail in list_mail:
        mail = f'{name}{number}@untitled.py'
        number += 1
    list_mail.append(mail)
    print(mail)
Так?
Если да то не проходит 1 тест
0
0 / 0 / 0
Регистрация: 16.09.2019
Сообщений: 1
09.10.2019, 16:46
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
uzed_post_names = [input() for i in range(int(input()))]
new_names = [input() for i in range(int(input()))]
new_post_names = []
for i in range(len(new_names)):
    counter = 0
    for j in range(len(uzed_post_names)):
        if new_names[i] in uzed_post_names[j]:
            counter += 1
    if counter == 0:
        new_post_names.append(new_names[i] + '@untitled.py')
    else:
        new_post_names.append(new_names[i] + str(counter) + '@untitled.py')
    uzed_post_names.append(new_post_names[-1])
print(*new_post_names, sep='\n')
0
Модератор
Эксперт Python
 Аватар для Fudthhh
2696 / 1602 / 513
Регистрация: 21.02.2017
Сообщений: 4,210
Записей в блоге: 1
09.10.2019, 16:56
canyaahk, словно в воду пукнул.
1
69 / 61 / 11
Регистрация: 08.04.2019
Сообщений: 117
19.12.2019, 23:11
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
n = int(input())
emails = [input() for _ in range(n)]
 
m = int(input())
names = [input() for _ in range(m)]
 
for name in names:
    index = ""
    while True:
        email = f"{name}{index}@untitled.py"
        if email not in emails:
            emails.append(email)
            print(email)
            break
        index = index + 1 if index else 1
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.12.2019, 23:11
Помогаю со студенческими работами здесь

очень интересная загадка по мотивам одной известной истории=)
Вы, наверное, слышали историю о том, как один могуществен-ный правитель обещал наградить ученого, оказавшего ему большую услугу. Ученый,...

нахождение значения чисел при одной известной переменной
Здравствуйте. Есть двойной массив 2 на 3 ,в нем храниться информация о сумме ячеек . например: mas=24 mas=15 mas=23 mas=19 ...

2 сайта одной тематики одной компании
Здрасте. Есть сайт в топе по транспортной тематике(порядка 90 слов), есть второй сайт этой же компании(контакты,название одно.контент и...

Составить уравнение сторон треугольника по известной одной вершине и уравнениям медиан
Составить уравнение сторон треугольника. ABC, если известны координаты А(1;3) и уравнение двух медиан: у= х+4 и х=-1.

Два сайта одной компании
Здравствуйте. Прошу просветить. Надо продвигать 2 сайта (1-основной, 2-новый) одной компании, предлагающей услуги. На 1 есть страница...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru