邮件传输代理的交互 The Letter Carrier's Rounds
题意翻译
本题的任务为模拟发送邮件时MTA(邮件传输代理)之间的交互。所谓MTA,就是email地址格式user@mtaname的“后面部分”。当某人从user1@mta1发送给另一个人user2@mta2时,这两个MTA将会通信。如果两个收件人属于同一个MTA,发送者的MTA只需与这个
MTA通信一次就可以把邮件发送给这两个人。
输入每个MTA里的用户列表,对于每个发送请求(输入发送者和接收者列表),按顺序
输出所有MTA之间的SMTP(简单邮件协议)交互。协议细节参见原题。
发送人MTA连接收件人MTA的顺序应该与在输入中第一次出现的顺序一致。例如,若
发件人是Hamdy@Cairo,收件人列表为Conrado@MexicoCity、Shariff@SanFrancisco、
Lisa@MexicoCity,则Cairo应当依次连接MexicoCity和SanFrancisco。
如果连接某个MTA之后发现所有收件人都不存在,则不应该发送DATA。所有用户名均由不超过15个字母和数字组成。
- `221`:关闭 MTA 间通讯,在 `QUIT` 后出现;
- `250`:表示 MTA 间通讯正常,在每个正常操作后出现;
- `354`:表示发信开始,在 `DATA` 后出现;
- `550`:表示 MTA 间通讯异常,即收信人不存在导致信息无法发送,在异常操作后出现;
- `HELO`:后面的字符串代表发信人所在的 MTA;
- `MAIL FROM`:后面的字符串表示发信人的域名;
- `RCPT TO`:后面的字符串表示此封信件的收件人**之一**(一封信件的 `MAIL FROM` 只能有**一行**,而 `RCPT TO` 可以有**多行**)
- `DATA`:后面即为信文;
- `QUIT`:表示信文结束。
Translated by @HuangBo
题目描述
[problemUrl]: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=10&page=show_problem&problem=755
[PDF](https://uva.onlinejudge.org/external/8/p814.pdf)
![](https://cdn.luogu.com.cn/upload/vjudge_pic/UVA814/ce9250ad50e7737c43213a539668fb6c23f3d0ea.png)
输入输出格式
输入格式
![](https://cdn.luogu.com.cn/upload/vjudge_pic/UVA814/f5728826144f1356571357078ceb40d6d77cbd02.png)
输出格式
![](https://cdn.luogu.com.cn/upload/vjudge_pic/UVA814/ccad3c3a3b664c8a1cb83b9a2ac50915f4da21fa.png)
输入输出样例
输入样例 #1
MTA London 4 Fiona Paul Heather Nevil
MTA SanFrancisco 3 Mario Luigi Shariff
MTA Paris 3 Jacque Suzanne Maurice
MTA HongKong 3 Chen Jeng Hee
MTA MexicoCity 4 Conrado Estella Eva Raul
MTA Cairo 3 Hamdy Tarik Misa
*
Hamdy@Cairo Conrado@MexicoCity Shariff@SanFrancisco Lisa@MexicoCity
*
Congratulations on your efforts !!
--Hamdy
*
Fiona@London Chen@HongKong Natasha@Paris
*
Thanks for the report! --Fiona
*
*
输出样例 #1
Connection between Cairo and MexicoCity
HELO Cairo
250
MAIL FROM:<Hamdy@Cairo>
250
RCPT TO:<Conrado@MexicoCity>
250
RCPT TO:<Lisa@MexicoCity>
550
DATA
354
Congratulations on your efforts !!
--Hamdy
.
250
QUIT
221
Connection between Cairo and SanFrancisco
HELO Cairo
250
MAIL FROM:<Hamdy@Cairo>
250
RCPT TO:<Shariff@SanFrancisco>
250
DATA
354
Congratulations on your efforts !!
--Hamdy
.
250
QUIT
221
Connection between London and HongKong
HELO London
250
MAIL FROM:<Fiona@London>
250
RCPT TO:<Chen@HongKong>
250
DATA
354
Thanks for the report! --Fiona
.
250
QUIT
221
Connection between London and Paris
HELO London
250
MAIL FROM:<Fiona@London>
250
RCPT TO:<Natasha@Paris>
550
QUIT
221