日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UVa 814 - The Letter Carrier's Rounds

發布時間:2025/7/14 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UVa 814 - The Letter Carrier's Rounds 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題意

模擬mta發送郵件
模擬的我頭皮發麻

記錄

有個挺騷的操作記下來了, 有點意思

string text; while(getline(cin, s) && s[0] != '*')text += " " + s + "\n";

AC代碼

#include <iostream> #include <cstdio> #include <string> #include <vector> #include <set> #include <map>using namespace std;set<string> email, wait; vector<string> vec; map<string,vector<string> > countnum;void findmta( string &name, string &mta, string s ){int mrk = s.find('@');name = s.substr(0,mrk);mta = s.substr(mrk+1);//cout << name << endl << mta << endl; }int main() {string s, s1, s2, ss, name1, mta1, name2, mta2;vector<string>::iterator it;int n;size_t i, j;while( cin >> s ){if( s == "*" ) break;if( s == "MTA" ){cin >> s1;cin >> n;while(n--){s2 = "";cin >> s2;email.insert(s2+"@"+s1);}}}while( cin >> s && s != "*" ){findmta(name1,mta1,s);while( cin >> ss && ss != "*" ){findmta(name2, mta2, ss);if(wait.count(ss)) continue;wait.insert(ss);if( !countnum.count(mta2) ){vec.push_back(mta2);countnum[mta2] = vector<string>();}countnum[mta2].push_back(ss);//countnum[mta2]++;}getchar();string text;while(getline(cin, s) && s[0] != '*')text += " " + s + "\n";for( i = 0; i < vec.size(); i++ ){vector<string> adds = countnum[vec[i]];cout << "Connection between " << mta1 << " and " << vec[i] << endl;cout << " HELO " << mta1 << endl << " 250" << endl;cout << " MAIL FROM:<" << name1 << "@" << mta1 << ">" << endl << " 250" << endl;bool flag = false;for( j = 0; j < adds.size(); j++){cout << " RCPT TO:<" << adds[j] << ">" << endl;if( email.count(adds[j]) ){flag = true;cout << " 250" << endl;}else cout << " 550" << endl;}if( flag )cout << " DATA" << endl << " 354" << endl << text << " ." << endl << " 250" << endl;cout << " QUIT" << endl << " 221" << endl;}if( !wait.empty() ) wait.clear();if( !countnum.empty() ) countnum.clear();if( !vec.empty() ) vec.clear();}return 0; }

轉載于:https://www.cnblogs.com/JinxiSui/p/9740620.html

總結

以上是生活随笔為你收集整理的UVa 814 - The Letter Carrier's Rounds的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。