题目: P1071
卡在了第一个点上...第一个点的输入是:
A
A
A
标答是:
Failed
但是我没看懂这个是违反了哪一条原则导致被判为Failed
代码:
#include<cstdio>
#include<cstring>
#include<iostream>
#include<string>
#include<map>
#include<set>
using std::string;
using std::cin;
using std::cout;
using std::endl;
using std::ios;
using std::map;
using std::set;
set<char>sa,sb;
map<char,char>mp;
string a,b,c;
bool flag=false;
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin>>a;cin>>b;cin>>c;
for(auto i:a)sa.insert(i);
for(auto i:b)sb.insert(i);
for(register int i=0;i<a.size();++i)
if(mp.find(a[i])==mp.end())mp[a[i]]=b[i];
else if(mp[a[i]]!=b[i]){flag=true;break;}
for(auto i:sa)if(sb.find(i)==sb.end()){flag=true;break;}
if(flag){puts("Failed");return 0;}
for(auto i:c)cout<<mp[i];
cout<<endl;
}