猜单词
直接把每个S都按照字典序存起来就行了
#include<bits/stdc++.h>
using namespace std;
int n,m,k,x;
char s[501];
char c[501][26];
char ans[501];
int main()
{
scanf("%d%d%d%d",&n,&m,&k,&x);
x--;
scanf("%s",s+1);
for (int i=1;i<=m;i++)
{
scanf("%s",c[i]);
sort(c[i],c[i]+k);
}
for(int i=n;i>=1;i--)
{
if(s[i]=='#')
{
s[i]=c[m][x%k];
x/=k;
m--;
}
}
printf("%s\n",s+1);
return 0;
}