fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. // why am I so weak
  5.  
  6. int n;
  7. char s[5055];
  8.  
  9. int main() {
  10. scanf("%d", &n);
  11.  
  12. int a = 0, b = 0, c = 0;
  13.  
  14. {
  15. char buf[5055];
  16. scanf("%s", buf);
  17.  
  18. for (int i = 0; i < n; i++) {
  19. if (buf[i] == 'a') a++;
  20. if (buf[i] == 'b') b++;
  21. if (buf[i] == 'c') c++;
  22. }
  23. }
  24.  
  25. int a_left = 0, b_left = 0, c_left = 0;
  26.  
  27. scanf("%s", s);
  28.  
  29. for (int i = 0; i < n; i++) {
  30. if (s[i] == 'a') a_left++;
  31. if (s[i] == 'b') b_left++;
  32. if (s[i] == 'c') c_left++;
  33. }
  34.  
  35. for (int i = 0; i < n; i++) {
  36. if (s[i] == 'a') {
  37. // use b or c
  38.  
  39. a_left--;
  40.  
  41. if (b > 0 && a_left <= c + b - 1 && c_left <= a + b - 1) {
  42. b--;
  43. printf("b");
  44. } else {
  45. c--;
  46. printf("c");
  47. }
  48. } else if (s[i] == 'b') {
  49. // a or c
  50.  
  51. b_left--;
  52.  
  53. if (a > 0 && b_left <= a + c - 1 && c_left <= a + b - 1) {
  54. a--;
  55. printf("a");
  56. } else {
  57. c--;
  58. printf("c");
  59. }
  60. } else {
  61. // a or b
  62.  
  63. c_left--;
  64.  
  65. if (a > 0 && b_left <= a + c - 1 && c_left <= a + b - 1) {
  66. a--;
  67. printf("a");
  68. } else {
  69. b--;
  70. printf("b");
  71. }
  72. }
  73. }
  74.  
  75. return 0;
  76. }
Success #stdin #stdout 0s 16064KB
stdin
Standard input is empty
stdout
Standard output is empty