比赛链接:“菜鸟杯”华中师范大学程序设计新生赛(同步赛)_ACM/NOI/CSP/CCPC/ICPC算法编程高难度练习赛_牛客竞赛OJ
I.宝藏欲しい
思路:
存储词典时,用map实现从古语言到现代语言的映射。
因为输出时,若无法实现翻译应输出“-1”,所以可以将已经完成翻译的古语言存入队列,若中途出现词典以外的古语言就做一个标志,若能成功翻译就逐一输出队首。
代码实现:
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int maxn = 110;
int n;
map<string,string> m;
signed main()
{
cin >> n;
while(n--)
{
string a, b;
cin >> a >> b;
m[b] = a;
}
string s;
queue<string> q;
bool flag = 0;
while(cin >> s)
{
if(m.count(s)) q.push(m[s]);
else flag = 1;
}
if(flag) puts("-1");
else
{
while(q.size())
{
printf("%s ", q.front().c_str());
q.pop();
}
}
return 0;