Advertisement
Guest User

Untitled

a guest
Nov 18th, 2019
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.44 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <vector>
  4. #include <unordered_set>
  5. #include <algorithm>
  6.  
  7. using namespace std;
  8.  
  9. unordered_set<string> words;
  10. vector<string> ans;
  11.  
  12. int main() {
  13. string s1, s2;
  14. cin >> s1 >> s2;
  15. words.reserve(1000000);
  16. ans.reserve(1000000);
  17. words.insert(s2);
  18. for (size_t i = 0; i < s2.size(); i++) {
  19. string cur = s2;
  20. cur.erase(i, 1);
  21. //cout << "i = " << i << " " << cur << endl;
  22. if (!words.count(cur)) {
  23. words.insert(cur);
  24. ans.emplace_back(std::move(cur));
  25. }
  26. }
  27. /*
  28. cout << "ans1" << endl;
  29. for (auto& item : ans) {
  30. cout << item << "\n";
  31. }
  32. */
  33. for (size_t i = 0; i <= s2.size(); i++) {
  34. for (size_t j = 0; j < s1.size(); j++) {
  35. string cur = s2;
  36. cur.insert(i, 1, s1[j]);
  37. if (!words.count(cur)) {
  38. words.insert(cur);
  39. ans.emplace_back(std::move(cur));
  40. }
  41. }
  42. }
  43.  
  44. for (size_t i = 0; i < s2.size(); i++) {
  45. for (size_t j = 0; j < s1.size(); j++) {
  46. string cur = s2;
  47. cur[i] = s1[j];
  48. if (!words.count(cur)) {
  49. words.insert(cur);
  50. ans.emplace_back(std::move(cur));
  51. }
  52. }
  53. }
  54. sort(ans.begin(), ans.end());
  55. for (auto& item : ans) {
  56. cout << item << "\n";
  57. }
  58.  
  59. return 0;
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement