#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
#define main dummy_main
int main( ) {
return 0 ;
}
#undef main
int sz[ 10 ] ;
int lis[ 10 ] [ 100000 + 2 ] ;
class Solution{
public :
bool isTransformable( string s, string t) {
int i, tU__gIr_;
int n = s.size ( ) ;
int p;
for ( i= ( 0 ) ; i< ( n) ; i++ ) {
s[ i] - = '0' ;
}
for ( i= ( 0 ) ; i< ( n) ; i++ ) {
t[ i] - = '0' ;
}
for ( i= ( 0 ) ; i< ( 10 ) ; i++ ) {
sz[ i] = 0 ;
}
for ( i= ( 0 ) ; i< ( n) ; i++ ) {
lis[ s[ i] ] [ sz[ s[ i] ] ++ ] = i;
}
for ( i= ( 0 ) ; i< ( 10 ) ; i++ ) {
lis[ i] [ sz[ i] ++ ] = 1073709056 ;
}
for ( i= ( 0 ) ; i< ( 10 ) ; i++ ) {
reverse( lis[ i] , lis[ i] + sz[ i] ) ;
}
for ( tU__gIr_= ( 0 ) ; tU__gIr_< ( n) ; tU__gIr_++ ) {
int j;
auto & i = t[ tU__gIr_] ;
if ( sz[ i] == 1 ) {
return false ;
}
p = lis[ i] [ -- sz[ i] ] ;
for ( j= ( 0 ) ; j< ( i) ; j++ ) {
if ( lis[ j] [ sz[ j] - 1 ] < p) {
return false ;
}
}
}
return true ;
}
}
;
// cLay varsion 20200913-1
// --- original code ---
// #define main dummy_main
// {}
// #undef main
//
// int sz[10], lis[10][1d5+2];
//
// class Solution {
// public:
// bool isTransformable(string s, string t) {
// int n = s.size(), p;
// rep(i,n) s[i] -= '0';
// rep(i,n) t[i] -= '0';
// rep(i,10) sz[i] = 0;
// rep(i,n) lis[s[i]][sz[s[i]]++] = i;
// rep(i,10) lis[i][sz[i]++] = int_inf;
// rep(i,10) reverse(lis[i], lis[i] + sz[i]);
//
// rep[t](i,n){
// if(sz[i]==1) return false;
// p = lis[i][--sz[i]];
// rep(j,i) if(lis[j][sz[j]-1] < p) return false;
// }
//
// return true;
// }
// };
I3ByYWdtYSBHQ0Mgb3B0aW1pemUgKCJPZmFzdCIpCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbWFpbiBkdW1teV9tYWluCmludCBtYWluKCl7CiAgcmV0dXJuIDA7Cn0KI3VuZGVmIG1haW4KaW50IHN6WzEwXTsKaW50IGxpc1sxMF1bMTAwMDAwKzJdOwpjbGFzcyBTb2x1dGlvbnsKICBwdWJsaWM6CiAgYm9vbCBpc1RyYW5zZm9ybWFibGUoc3RyaW5nIHMsIHN0cmluZyB0KXsKICAgIGludCBpLCB0VV9fZ0lyXzsKICAgIGludCBuID0gcy5zaXplKCk7CiAgICBpbnQgcDsKICAgIGZvcihpPSgwKTtpPChuKTtpKyspewogICAgICBzW2ldIC09ICcwJzsKICAgIH0KICAgIGZvcihpPSgwKTtpPChuKTtpKyspewogICAgICB0W2ldIC09ICcwJzsKICAgIH0KICAgIGZvcihpPSgwKTtpPCgxMCk7aSsrKXsKICAgICAgc3pbaV0gPSAwOwogICAgfQogICAgZm9yKGk9KDApO2k8KG4pO2krKyl7CiAgICAgIGxpc1tzW2ldXVtzeltzW2ldXSsrXSA9IGk7CiAgICB9CiAgICBmb3IoaT0oMCk7aTwoMTApO2krKyl7CiAgICAgIGxpc1tpXVtzeltpXSsrXSA9IDEwNzM3MDkwNTY7CiAgICB9CiAgICBmb3IoaT0oMCk7aTwoMTApO2krKyl7CiAgICAgIHJldmVyc2UobGlzW2ldLCBsaXNbaV0gKyBzeltpXSk7CiAgICB9CiAgICBmb3IodFVfX2dJcl89KDApO3RVX19nSXJfPChuKTt0VV9fZ0lyXysrKXsKICAgICAgaW50IGo7CiAgICAgIGF1dG8gJmkgPSB0W3RVX19nSXJfXTsKICAgICAgaWYoc3pbaV09PTEpewogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgICBwID0gbGlzW2ldWy0tc3pbaV1dOwogICAgICBmb3Ioaj0oMCk7ajwoaSk7aisrKXsKICAgICAgICBpZihsaXNbal1bc3pbal0tMV0gPCBwKXsKICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIHJldHVybiB0cnVlOwogIH0KfQo7Ci8vIGNMYXkgdmFyc2lvbiAyMDIwMDkxMy0xCgovLyAtLS0gb3JpZ2luYWwgY29kZSAtLS0KLy8gI2RlZmluZSBtYWluIGR1bW15X21haW4KLy8ge30KLy8gI3VuZGVmIG1haW4KLy8gCi8vIGludCBzelsxMF0sIGxpc1sxMF1bMWQ1KzJdOwovLyAKLy8gY2xhc3MgU29sdXRpb24gewovLyBwdWJsaWM6Ci8vICAgYm9vbCBpc1RyYW5zZm9ybWFibGUoc3RyaW5nIHMsIHN0cmluZyB0KSB7Ci8vICAgICBpbnQgbiA9IHMuc2l6ZSgpLCBwOwovLyAgICAgcmVwKGksbikgc1tpXSAtPSAnMCc7Ci8vICAgICByZXAoaSxuKSB0W2ldIC09ICcwJzsKLy8gICAgIHJlcChpLDEwKSBzeltpXSA9IDA7Ci8vICAgICByZXAoaSxuKSBsaXNbc1tpXV1bc3pbc1tpXV0rK10gPSBpOwovLyAgICAgcmVwKGksMTApIGxpc1tpXVtzeltpXSsrXSA9IGludF9pbmY7Ci8vICAgICByZXAoaSwxMCkgcmV2ZXJzZShsaXNbaV0sIGxpc1tpXSArIHN6W2ldKTsKLy8gCi8vICAgICByZXBbdF0oaSxuKXsKLy8gICAgICAgaWYoc3pbaV09PTEpIHJldHVybiBmYWxzZTsKLy8gICAgICAgcCA9IGxpc1tpXVstLXN6W2ldXTsKLy8gICAgICAgcmVwKGosaSkgaWYobGlzW2pdW3N6W2pdLTFdIDwgcCkgcmV0dXJuIGZhbHNlOwovLyAgICAgfQovLyAKLy8gICAgIHJldHVybiB0cnVlOwovLyAgIH0KLy8gfTsK