#include #include #include #include #include #include #include #include #include using namespace std; class People { public: int print; vector people; void GenPermutations(size_t index); }; void People::GenPermutations(size_t index) { size_t i; string tmp; if (index == people.size()) { if (print) { cout << people[0]; for (i = 1; i < people.size(); i++) cout << " " << people[i]; cout << endl; } return; } for (i = index; i < people.size(); i++) { tmp = people[i]; /* Swap people[index] with people[i] */ people[i] = people[index]; people[index] = tmp; GenPermutations(index+1); tmp = people[i]; /* Swap back */ people[i] = people[index]; people[index] = tmp; } } int main(int argc, char **argv) { People P; string s; P.print = 1; if (argc == 2) { s = argv[1]; if (s == "No" || s == "no") P.print = 0; } while (cin >> s) P.people.push_back(s); P.GenPermutations(0); }