next_permutation
STLの
#include <algorithm> #include <fstream> #include <sstream> #include <iostream> #include <vector> using namespace std; template<class IIter> string put(IIter begin, IIter end){ stringstream temp; temp << end-begin << ":[" << flush; while(begin != end){ temp << *(begin++) << " " << flush; } temp << "]" << flush; return temp.str(); } int main(){ vector<int> v; for(int i=1; i <= 5; i++){ v.push_back(i); } int cnt = 1; ofstream out("result.txt"); out << put(v.begin(), v.end()) << endl; while(next_permutation(v.begin(), v.end())){ out << put(v.begin(), v.end()) << endl; cnt++; } out << cnt << endl; out.close(); return 0; }
で、result.txtが
5:[1 2 3 4 5 ] 5:[1 2 3 5 4 ] 5:[1 2 4 3 5 ] 5:[1 2 4 5 3 ] 5:[1 2 5 3 4 ] 5:[1 2 5 4 3 ] 5:[1 3 2 4 5 ] 5:[1 3 2 5 4 ] 5:[1 3 4 2 5 ] 5:[1 3 4 5 2 ] 5:[1 3 5 2 4 ] 5:[1 3 5 4 2 ] 5:[1 4 2 3 5 ] 5:[1 4 2 5 3 ] 5:[1 4 3 2 5 ] 5:[1 4 3 5 2 ] 5:[1 4 5 2 3 ] 5:[1 4 5 3 2 ] 5:[1 5 2 3 4 ] 5:[1 5 2 4 3 ] 5:[1 5 3 2 4 ] 5:[1 5 3 4 2 ] 5:[1 5 4 2 3 ] 5:[1 5 4 3 2 ] 5:[2 1 3 4 5 ] 5:[2 1 3 5 4 ] 5:[2 1 4 3 5 ] 5:[2 1 4 5 3 ] 5:[2 1 5 3 4 ] 5:[2 1 5 4 3 ] 5:[2 3 1 4 5 ] 5:[2 3 1 5 4 ] 5:[2 3 4 1 5 ] 5:[2 3 4 5 1 ] 5:[2 3 5 1 4 ] 5:[2 3 5 4 1 ] 5:[2 4 1 3 5 ] 5:[2 4 1 5 3 ] 5:[2 4 3 1 5 ] 5:[2 4 3 5 1 ] 5:[2 4 5 1 3 ] 5:[2 4 5 3 1 ] 5:[2 5 1 3 4 ] 5:[2 5 1 4 3 ] 5:[2 5 3 1 4 ] 5:[2 5 3 4 1 ] 5:[2 5 4 1 3 ] 5:[2 5 4 3 1 ] 5:[3 1 2 4 5 ] 5:[3 1 2 5 4 ] 5:[3 1 4 2 5 ] 5:[3 1 4 5 2 ] 5:[3 1 5 2 4 ] 5:[3 1 5 4 2 ] 5:[3 2 1 4 5 ] 5:[3 2 1 5 4 ] 5:[3 2 4 1 5 ] 5:[3 2 4 5 1 ] 5:[3 2 5 1 4 ] 5:[3 2 5 4 1 ] 5:[3 4 1 2 5 ] 5:[3 4 1 5 2 ] 5:[3 4 2 1 5 ] 5:[3 4 2 5 1 ] 5:[3 4 5 1 2 ] 5:[3 4 5 2 1 ] 5:[3 5 1 2 4 ] 5:[3 5 1 4 2 ] 5:[3 5 2 1 4 ] 5:[3 5 2 4 1 ] 5:[3 5 4 1 2 ] 5:[3 5 4 2 1 ] 5:[4 1 2 3 5 ] 5:[4 1 2 5 3 ] 5:[4 1 3 2 5 ] 5:[4 1 3 5 2 ] 5:[4 1 5 2 3 ] 5:[4 1 5 3 2 ] 5:[4 2 1 3 5 ] 5:[4 2 1 5 3 ] 5:[4 2 3 1 5 ] 5:[4 2 3 5 1 ] 5:[4 2 5 1 3 ] 5:[4 2 5 3 1 ] 5:[4 3 1 2 5 ] 5:[4 3 1 5 2 ] 5:[4 3 2 1 5 ] 5:[4 3 2 5 1 ] 5:[4 3 5 1 2 ] 5:[4 3 5 2 1 ] 5:[4 5 1 2 3 ] 5:[4 5 1 3 2 ] 5:[4 5 2 1 3 ] 5:[4 5 2 3 1 ] 5:[4 5 3 1 2 ] 5:[4 5 3 2 1 ] 5:[5 1 2 3 4 ] 5:[5 1 2 4 3 ] 5:[5 1 3 2 4 ] 5:[5 1 3 4 2 ] 5:[5 1 4 2 3 ] 5:[5 1 4 3 2 ] 5:[5 2 1 3 4 ] 5:[5 2 1 4 3 ] 5:[5 2 3 1 4 ] 5:[5 2 3 4 1 ] 5:[5 2 4 1 3 ] 5:[5 2 4 3 1 ] 5:[5 3 1 2 4 ] 5:[5 3 1 4 2 ] 5:[5 3 2 1 4 ] 5:[5 3 2 4 1 ] 5:[5 3 4 1 2 ] 5:[5 3 4 2 1 ] 5:[5 4 1 2 3 ] 5:[5 4 1 3 2 ] 5:[5 4 2 1 3 ] 5:[5 4 2 3 1 ] 5:[5 4 3 1 2 ] 5:[5 4 3 2 1 ] 120
激しい誰得。アルゴリズム系の大会だったら使える場面がある…かな?