#335 Test cases
Posted: Fri Jul 11, 2003 11:40 am
Hello,
Could you provide test data (extreme conditions would be helpful also) ?
Thanks
Could you provide test data (extreme conditions would be helpful also) ?
Thanks
Code: Select all
31
a.com 0 b.com
a.com 0 c.com
a.com 0 d.com
y.com 0 G.com
Z.com 0 e.com
mail.b.edu 0 server1.com
*.b.edu 0 server2.com
*.edu 0 server3.com
*il.b.edu 0 server4.com
*edu 0 server5.com
mail.b.org 5 server1.org
*.b.org 4 server2.org
*.org 3 server3.org
*il.b.org 2 server4.org
*org 1 server5.org
*net 1 server5.net
*il.b.net 2 server4.net
*.net 3 server3.net
*.b.net 4 server2.net
mail.b.net 5 server1.net
*ws 5 server5.ws
*il.b.ws 4 server4.ws
*.ws 3 server3.ws
*.b.ws 2 server2.ws
mail.b.ws 1 server1.ws
mail.b.biz 1 server1.biz
*il.b.biz 2 server2.biz
*.b.biz 3 server3.biz
*.biz 4 server4.biz
*biz 5 server5.biz
* 100 catchall
A a.com
D c.com
A a.com
D b.com
A a.com
U c.com
A a.com
D d.com
A a.com
A A.com
A z.com
A y.com
A Y.com
A mail.b.edu
A grail.b.edu
A home.b.edu
A c.edu
A cedu
A mail.b.org
A grail.b.org
A home.b.org
A c.org
A corg
A mail.b.net
A grail.b.net
A home.b.net
A c.net
A cnet
A mail.b.ws
A grail.b.ws
A home.b.ws
A c.ws
A cws
A mail.b.biz
A grail.b.biz
A home.b.biz
A c.biz
A cbiz
A g.com.sg
A microsoft.com
A uva.edu.es
A onlinejudge.uva.es
X
Code: Select all
a.com => d.com
a.com => d.com
a.com => d.com
a.com => d.com
a.com => c.com
a.com => c.com
z.com => e.com
y.com => G.com
y.com => G.com
mail.b.edu => server1.com
grail.b.edu => server4.com
home.b.edu => server2.com
c.edu => server3.com
cedu => server5.com
mail.b.org => server5.org
grail.b.org => server5.org
home.b.org => server5.org
c.org => server5.org
corg => server5.org
mail.b.net => server5.net
grail.b.net => server5.net
home.b.net => server5.net
c.net => server5.net
cnet => server5.net
mail.b.ws => server1.ws
grail.b.ws => server2.ws
home.b.ws => server2.ws
c.ws => server3.ws
cws => server5.ws
mail.b.biz => server1.biz
grail.b.biz => server2.biz
home.b.biz => server3.biz
c.biz => server4.biz
cbiz => server5.biz
g.com.sg => catchall
microsoft.com => catchall
uva.edu.es => catchall
onlinejudge.uva.es => catchall
Code: Select all
a.com =>
a.com =>
a.com => d.com
a.com => c.com
a.com => c.com
A.com => catchall
z.com => catchall
y.com => G.com
Y.com => catchall
mail.b.edu => server1.com
grail.b.edu => server2.com
home.b.edu => server2.com
c.edu => server3.com
cedu => server5.com
mail.b.org => server5.org
grail.b.org => server5.org
home.b.org => server5.org
c.org => server5.org
corg => server5.org
mail.b.net => server5.net
grail.b.net => server5.net
home.b.net => server5.net
c.net => server5.net
cnet => server5.net
mail.b.ws => server1.ws
grail.b.ws => server2.ws
home.b.ws => server2.ws
c.ws => server3.ws
cws => server5.ws
mail.b.biz => server1.biz
grail.b.biz => server2.biz
home.b.biz => server3.biz
c.biz => server4.biz
cbiz => server5.biz
g.com.sg => catchall
microsoft.com => catchall
uva.edu.es => catchall
onlinejudge.uva.es => catchall
Code: Select all
a.com 0 b.com
a.com 0 c.com
a.com 0 d.com
y.com 0 G.com
Z.com 0 e.com
Code: Select all
a.com => d.com
a.com => d.com
a.com => d.com
a.com => d.com
a.com => c.com
a.com => c.com
Code: Select all
a.com =>
a.com =>
a.com => d.com
a.com => c.com
a.com => c.com
Code: Select all
a.com => b.com
a.com => d.com
a.com => catchall
a.com => c.com
a.com =>
A.com =>
z.com =>
y.com => G.com
Y.com =>
mail.b.edu => server1.com
grail.b.edu => server2.com
home.b.edu => server3.com
c.edu => server5.com
cedu =>
mail.b.org => server5.org
grail.b.org => server4.org
home.b.org => server3.org
c.org =>
corg =>
mail.b.net => server5.net
grail.b.net => server4.net
home.b.net => server3.net
c.net =>
cnet =>
mail.b.ws => server1.ws
grail.b.ws => server2.ws
home.b.ws => server3.ws
c.ws => server5.ws
cws =>
mail.b.biz => server1.biz
grail.b.biz => server2.biz
home.b.biz => server3.biz
c.biz => server4.biz
cbiz => server5.biz
g.com.sg =>
microsoft.com =>
uva.edu.es =>
onlinejudge.uva.es =>
Code: Select all
2
a.com 0 machineA.com
a.com 0 machineB.com
A a.com
X
Code: Select all
a.com => machineA.com
Code: Select all
a.com => machineB.com
Code: Select all
#include <cctype>
#include <algorithm>
#include <iostream>
#include <string>
#include <sstream>
#include <map>
#include <set>
#include <vector>
using namespace std;
map < string, vector < pair < int, string > > > data, datax;
int main(){
string s, a, b;
int n, p; cin >> n; getline(cin, s);
while(n-- && getline(cin, s)){
istringstream sin(s);
if(isspace(s[0])) sin >> p >> b;
else sin >> a >> p >> b;
if(a[0] == '*') datax[a.substr(1)].push_back(make_pair(p, b));
else data[a].push_back(make_pair(p, b));
}
set < string > down;
while(cin >> a >> b && a != "X")
if(a == "D") down.insert(b);
else if(a == "U") down.erase(b);
else{
cout << b << " => ";
vector < pair < int, string > > all;
if(data.count(b)) all = data[b];
for(int i = 0; i <= (int)b.size(); i++)
if(datax.count(b.substr(i))){
vector < pair < int, string > > &add = datax[b.substr(i)];
for(int i = 0; i < (int)add.size(); i++)
all.push_back(add[i]);
}
sort(all.begin(), all.end());
string ans = "";
for(int i = 0; i < (int)all.size(); i++)
if(!down.count(all[i].second)){
ans = all[i].second;
break;
}
if(ans.size()) cout << ans;
cout << endl;
}
return 0;
}