Advertisement
viraco4a

Untitled

Mar 28th, 2018
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.47 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4.  
  5. namespace PermRepRecursive
  6. {
  7. class Program
  8. {
  9.  
  10. private static List<string> elements;
  11.  
  12. static void Main()
  13. {
  14. elements = Console.ReadLine().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries).ToList();
  15. elements.Sort();
  16. PermuteRep(elements, 0, elements.Count - 1);
  17. }
  18.  
  19. private static void PermuteRep(List<string> elements, int start, int end)
  20. {
  21. Console.WriteLine(string.Join(" ", elements));
  22. for (int left = end - 1; left >= start; left--)
  23. {
  24. for (int right = left + 1; right <= end; right++)
  25. {
  26. if (elements[left] != elements[right])
  27. {
  28. Swap(elements, left, right);
  29. PermuteRep(elements, left + 1, end);
  30. }
  31. }
  32. var firstElement = elements[left];
  33. for (int i = left; i <= end - 1; i++)
  34. {
  35. elements[i] = elements[i + 1];
  36. elements[end] = firstElement;
  37. }
  38. }
  39. }
  40.  
  41. private static void Swap(List<string> elements, int left, int right)
  42. {
  43. var temp = elements[left];
  44. elements[left] = elements[right];
  45. elements[right] = temp;
  46. }
  47.  
  48. }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement