Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Example program
- #include <bits/stdc++.h>
- using namespace std;
- #define rep(i,a,b) for(int i = (a); i < (b); i++)
- int main() {
- string a,b;
- getline(cin,a);
- getline(cin,b);
- int n;
- cin >> n;
- vector<string> k(n);
- rep(i,0,n) cin >> k[i];
- string t;
- getline(cin,t);
- getline(cin,t);
- map<char,char> tos;
- rep(i,0,int(a.size())) {
- if(a[i] != ' ') tos[a[i]] = b[i];
- }
- sort(k.begin(), k.end());
- vector<int> A;
- rep(i,0,n) A.push_back(i);
- do {
- string s = "";
- rep(i,0,26) s += char('a'+i);
- rep(i,0,n) {
- string he = s;
- rep(j,0,26) s[j] = k[A[i]][he[j]-'a'];
- }
- bool ok = true;
- for(auto &it : tos) {
- char c = it.first;
- if(s[c-'a'] != it.second) ok = false;
- }
- if(ok) {
- map<char,char> inv;
- rep(i,0,26) inv[s[i]] = char('a'+i);
- string ok = "";
- rep(i,0,int(t.size())){
- if(t[i] == ' ') ok += " ";
- else ok += inv[t[i]];
- }
- cout << ok << endl;
- return 0;
- }
- } while(next_permutation(A.end(), A.begin()));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement