Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <vector>
- using namespace std;
- int main()
- {
- ifstream fin;
- ofstream fout;
- fin.open("permutations.in");
- fout.open("permutations.out");
- int n,k,m,temp1,temp;
- fin >> n;
- int ans[8];
- bool flag = true;
- vector <int> reverse(8);
- k = n - 1;
- m = 0;
- for (int i = 0; i < n; ++i)
- {
- ans[i] = i + 1;
- fout << ans[i] << " ";
- }
- fout << "\n";
- temp1 = 100;
- temp = 100;
- while (flag)
- {
- while (ans[k] < ans[k - 1])
- {
- k--;
- if (k == 0)
- {
- flag = false;
- break;
- }
- }
- if (flag)
- {
- for (int i = k; i < n; ++i)
- {
- if (ans[i] - ans[k - 1] < temp1 && ans[i] - ans[k - 1]>0)
- {
- temp1 = ans[i] - ans[k - 1];
- temp = i;
- }
- }
- swap(ans[k - 1], ans[temp]);//not sure
- for (int i = k; i < (n - k) / 2 + k; ++i)
- {
- swap(ans[i], ans[n - i + k-1]);
- }
- k = n-1;
- for (int i = 0; i < n; ++i)
- {
- fout << ans[i] << " ";
- }
- fout << endl;
- temp = 100;
- temp1=100;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement