fork download
  1. // ~/BAU/ACM-ICPC/Teams/Rampage/Abukhadijah
  2. #include <functional>
  3. #include <iomanip>
  4. #include <stdio.h>
  5. #include <vector>
  6. #include <algorithm>
  7. #include<complex>
  8. #include <unordered_map>
  9. #include<unordered_set>
  10. #include <numeric>
  11. #include <string>
  12. #include<iostream>
  13. #include <fstream>
  14. #include <assert.h>
  15. #include <ctype.h>
  16. #include <limits.h>
  17. #include <math.h>
  18. #include<cmath>
  19. #include <stdlib.h>
  20. #include <math.h>
  21. #include <string.h>
  22. #include <time.h>
  23. #include <bitset>
  24. #include <map>
  25. #include <queue>
  26. #include <set>
  27. #include <stack>
  28. #include <sstream>
  29. using namespace std;
  30. typedef long long ll;
  31. typedef unsigned long long ull;
  32. const double PI = acos(-1.0);
  33. const double EPS = 1e-11;
  34. const ll MOD = 1000000007;
  35. const int N = 109;
  36. // freopen("input.txt","r",stdin);
  37. // freopen("output.txt","w",stdout);
  38. void fast()
  39. {
  40. std::ios_base::sync_with_stdio(0);
  41. }
  42. // ~/Remember,remember the 6th of March.
  43. int main()
  44. {
  45. int n, t;
  46. scanf("%d%d", &n, &t);
  47. string s1, s2,ans="";
  48. cin >> s1 >> s2;
  49. if (t == 0)
  50. {
  51. if (s1 != s2)
  52. puts("-1");
  53. else
  54. cout << s1 << endl;
  55. return 0;
  56. }
  57. vector<int>freq1(26), freq2(26), temp(26);
  58. for (int i = 0; i < n; i++)
  59. {
  60. freq1[s1[i] - 'a']++;
  61. freq2[s2[i] - 'a']++;
  62. }
  63. temp = freq2;
  64. int same1, same2, diff1, diff2;
  65. same1 = same2 = n - t;
  66. diff1 = diff2 = 0;
  67. int i = 0;
  68. while (same1)
  69. {
  70. if (freq2[s1[i] - 'a'])
  71. {
  72. ans += s1[i];
  73. same1--;
  74. same2--;
  75. freq2[s1[i] - 'a']--;
  76. }
  77. else
  78. {
  79. ans += s1[i];
  80. same1--;
  81. diff2++;
  82. }
  83. i++;
  84. }
  85. i = 0;
  86. while (same2)
  87. {
  88. if (!freq1[s2[i] - 'a'])
  89. {
  90. ans += s2[i];
  91. diff1++;
  92. same2--;
  93. }
  94. i++;
  95. }
  96. if (diff1 != diff2)
  97. {
  98. puts("-1");
  99. return 0;
  100. }
  101. for (int i = 0; i < 26; i++)
  102. {
  103. if (freq1[i] == 0 && temp[i] == 0)
  104. {
  105. while (diff1!=t)
  106. {
  107. ans += char(i + 'a');
  108. diff1++;
  109. }
  110. }
  111. }
  112. cout << ans << endl;
  113. return 0;
  114. }
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout