题目:
代码:
#include<bits/stdc++.h>
#define I using
#define AK namespace
#define IOI std
#define i_ak return
#define ioi 0
I AK IOI;
char p[30];
int n;
string a[50005];
bool cmp(string a,string b){
if(a.size()==b.size()){
int len=a.size();
for(int i=0;i<len;i++){
int l,r;
for(int j=1;j<=26;j++){
if(p[j]==a[i]){
l=j;
break;
}
}
for(int j=1;j<=26;j++){
if(p[j]==b[i]){
r=j;
break;
}
}
if(l>r)return 0;
else if(l<r)return 1;
}
}
return a.size()<b.size();
}
int main(){
//freopen("","r",stdin);
//freopen("","w",stdout);
for(int i=1;i<=26;i++)cin>>p[i];
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
sort(&a[1],&a[n+1],cmp);
for(int i=1;i<=n;i++)cout<<a[i]<<endl;
i_ak ioi;
}
