LEXICOGRAPHICALLY MINIMUM STRING SPACE OPTIMISATION HACKEREARTH
#include<bits/stdc++.h>
using namespace std;
int parent[27];
int find(int i){
if(i==parent[i])
return i;
parent[i]=find(parent[i]);
return parent[i];
}
void union1(int x,int y){
parent[max(x,y)]=min(x,y);
}
string Solution (string A, string C, string B) {
// Write your code here
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
string A;
getline(cin, A);
string B;
getline(cin, B);
string C;
getline(cin, C);
string out_;
for(int i=0;i<26;i++)
parent[i]=i;
for(int i=0;i<A.length();i++){
int a=A[i]-'a';
int b=B[i]-'a';
a=find(a);
b=find(b);
if(a!=b)
union1(a,b);
}
char c='a';
for(int i=0;i<C.length();i++){
cout<<(char)(c+find(C[i]-'a'));
}
}
Comments
Post a Comment