• Source
    1. #include <iostream>
    2. #include <string>
    3. using namespace std;
    4.  
    5. struct data
    6. {
    7. string xau;
    8. } typedef data;
    9.  
    10. int main ()
    11. {
    12. long long N, M, K, X;
    13. cin>>N>>M>>K>>X;
    14. string MH;
    15. cin>>MH;
    16. data S[502];
    17. for (int i=1; i<=M; i++)
    18. {
    19. cin>>S[i].xau;
    20. for (int j=0; j<K; j++)
    21. {
    22. for (int k=0; k<K-1; k++)
    23. {
    24. int so_k=S[i].xau[k]-0;
    25. int so_k1=S[i].xau[k+1]-0;
    26. if (so_k>so_k1)
    27. {
    28. char tg=S[i].xau[k];
    29. S[i].xau[k]=S[i].xau[k+1];
    30. S[i].xau[k+1]=tg;
    31. }
    32. }
    33. }
    34. }
    35. int stt=M;
    36. for (int i=N-1; i>=0; i--)
    37. {
    38. if (MH[i]=='#')
    39. {
    40. if (X%K==0)
    41. {
    42. MH[i]=S[stt].xau[K-1];
    43. X=(X/K);
    44. }
    45. else
    46. {
    47. MH[i]=S[stt].xau[(X%K)-1];
    48. X=(X/K)+1;
    49. }
    50. stt--;
    51. }
    52. }
    53. cout<<MH;
    54. return 0;
    55. }