#include <iostream> #include <vector> #include <algorithm> using namespace std; template <typename T, typename Res> Res sum ( T first, T end ) { Res res = 0; while ( first != end ) { res += *first; first++; } return res; } int main() { int s; cin >> s; int n; cin >> n; vector < int > v; while ( n-- ) { int t; cin >> t; v.push_back ( t ); } sort ( v.begin (), v.end () ); while ( next_permutation ( v.begin (), v.end () ) ) { for ( int i = 1; i <= v.size (); i++ ) { if ( sum < vector < int >::iterator, int > ( v.begin (), v.begin () + i ) == s ) { cout << "[ "; for ( auto &el: v ) { cout << el << " "; } cout << "]" << endl; } } } return 0; }
10 6 1 2 3 4 5 6 7 8 9 0
[ 1 2 3 4 6 5 ] [ 1 2 4 3 5 6 ] [ 1 2 4 3 6 5 ] [ 1 3 2 4 5 6 ] [ 1 3 2 4 6 5 ] [ 1 3 4 2 5 6 ] [ 1 3 4 2 6 5 ] [ 1 3 6 2 4 5 ] [ 1 3 6 2 5 4 ] [ 1 3 6 4 2 5 ] [ 1 3 6 4 5 2 ] [ 1 3 6 5 2 4 ] [ 1 3 6 5 4 2 ] [ 1 4 2 3 5 6 ] [ 1 4 2 3 6 5 ] [ 1 4 3 2 5 6 ] [ 1 4 3 2 6 5 ] [ 1 4 5 2 3 6 ] [ 1 4 5 2 6 3 ] [ 1 4 5 3 2 6 ] [ 1 4 5 3 6 2 ] [ 1 4 5 6 2 3 ] [ 1 4 5 6 3 2 ] [ 1 5 4 2 3 6 ] [ 1 5 4 2 6 3 ] [ 1 5 4 3 2 6 ] [ 1 5 4 3 6 2 ] [ 1 5 4 6 2 3 ] [ 1 5 4 6 3 2 ] [ 1 6 3 2 4 5 ] [ 1 6 3 2 5 4 ] [ 1 6 3 4 2 5 ] [ 1 6 3 4 5 2 ] [ 1 6 3 5 2 4 ] [ 1 6 3 5 4 2 ] [ 2 1 3 4 5 6 ] [ 2 1 3 4 6 5 ] [ 2 1 4 3 5 6 ] [ 2 1 4 3 6 5 ] [ 2 3 1 4 5 6 ] [ 2 3 1 4 6 5 ] [ 2 3 4 1 5 6 ] [ 2 3 4 1 6 5 ] [ 2 3 5 1 4 6 ] [ 2 3 5 1 6 4 ] [ 2 3 5 4 1 6 ] [ 2 3 5 4 6 1 ] [ 2 3 5 6 1 4 ] [ 2 3 5 6 4 1 ] [ 2 4 1 3 5 6 ] [ 2 4 1 3 6 5 ] [ 2 4 3 1 5 6 ] [ 2 4 3 1 6 5 ] [ 2 5 3 1 4 6 ] [ 2 5 3 1 6 4 ] [ 2 5 3 4 1 6 ] [ 2 5 3 4 6 1 ] [ 2 5 3 6 1 4 ] [ 2 5 3 6 4 1 ] [ 3 1 2 4 5 6 ] [ 3 1 2 4 6 5 ] [ 3 1 4 2 5 6 ] [ 3 1 4 2 6 5 ] [ 3 1 6 2 4 5 ] [ 3 1 6 2 5 4 ] [ 3 1 6 4 2 5 ] [ 3 1 6 4 5 2 ] [ 3 1 6 5 2 4 ] [ 3 1 6 5 4 2 ] [ 3 2 1 4 5 6 ] [ 3 2 1 4 6 5 ] [ 3 2 4 1 5 6 ] [ 3 2 4 1 6 5 ] [ 3 2 5 1 4 6 ] [ 3 2 5 1 6 4 ] [ 3 2 5 4 1 6 ] [ 3 2 5 4 6 1 ] [ 3 2 5 6 1 4 ] [ 3 2 5 6 4 1 ] [ 3 4 1 2 5 6 ] [ 3 4 1 2 6 5 ] [ 3 4 2 1 5 6 ] [ 3 4 2 1 6 5 ] [ 3 5 2 1 4 6 ] [ 3 5 2 1 6 4 ] [ 3 5 2 4 1 6 ] [ 3 5 2 4 6 1 ] [ 3 5 2 6 1 4 ] [ 3 5 2 6 4 1 ] [ 3 6 1 2 4 5 ] [ 3 6 1 2 5 4 ] [ 3 6 1 4 2 5 ] [ 3 6 1 4 5 2 ] [ 3 6 1 5 2 4 ] [ 3 6 1 5 4 2 ] [ 4 1 2 3 5 6 ] [ 4 1 2 3 6 5 ] [ 4 1 3 2 5 6 ] [ 4 1 3 2 6 5 ] [ 4 1 5 2 3 6 ] [ 4 1 5 2 6 3 ] [ 4 1 5 3 2 6 ] [ 4 1 5 3 6 2 ] [ 4 1 5 6 2 3 ] [ 4 1 5 6 3 2 ] [ 4 2 1 3 5 6 ] [ 4 2 1 3 6 5 ] [ 4 2 3 1 5 6 ] [ 4 2 3 1 6 5 ] [ 4 3 1 2 5 6 ] [ 4 3 1 2 6 5 ] [ 4 3 2 1 5 6 ] [ 4 3 2 1 6 5 ] [ 4 5 1 2 3 6 ] [ 4 5 1 2 6 3 ] [ 4 5 1 3 2 6 ] [ 4 5 1 3 6 2 ] [ 4 5 1 6 2 3 ] [ 4 5 1 6 3 2 ] [ 4 6 1 2 3 5 ] [ 4 6 1 2 5 3 ] [ 4 6 1 3 2 5 ] [ 4 6 1 3 5 2 ] [ 4 6 1 5 2 3 ] [ 4 6 1 5 3 2 ] [ 4 6 2 1 3 5 ] [ 4 6 2 1 5 3 ] [ 4 6 2 3 1 5 ] [ 4 6 2 3 5 1 ] [ 4 6 2 5 1 3 ] [ 4 6 2 5 3 1 ] [ 4 6 3 1 2 5 ] [ 4 6 3 1 5 2 ] [ 4 6 3 2 1 5 ] [ 4 6 3 2 5 1 ] [ 4 6 3 5 1 2 ] [ 4 6 3 5 2 1 ] [ 4 6 5 1 2 3 ] [ 4 6 5 1 3 2 ] [ 4 6 5 2 1 3 ] [ 4 6 5 2 3 1 ] [ 4 6 5 3 1 2 ] [ 4 6 5 3 2 1 ] [ 5 1 4 2 3 6 ] [ 5 1 4 2 6 3 ] [ 5 1 4 3 2 6 ] [ 5 1 4 3 6 2 ] [ 5 1 4 6 2 3 ] [ 5 1 4 6 3 2 ] [ 5 2 3 1 4 6 ] [ 5 2 3 1 6 4 ] [ 5 2 3 4 1 6 ] [ 5 2 3 4 6 1 ] [ 5 2 3 6 1 4 ] [ 5 2 3 6 4 1 ] [ 5 3 2 1 4 6 ] [ 5 3 2 1 6 4 ] [ 5 3 2 4 1 6 ] [ 5 3 2 4 6 1 ] [ 5 3 2 6 1 4 ] [ 5 3 2 6 4 1 ] [ 5 4 1 2 3 6 ] [ 5 4 1 2 6 3 ] [ 5 4 1 3 2 6 ] [ 5 4 1 3 6 2 ] [ 5 4 1 6 2 3 ] [ 5 4 1 6 3 2 ] [ 6 1 3 2 4 5 ] [ 6 1 3 2 5 4 ] [ 6 1 3 4 2 5 ] [ 6 1 3 4 5 2 ] [ 6 1 3 5 2 4 ] [ 6 1 3 5 4 2 ] [ 6 3 1 2 4 5 ] [ 6 3 1 2 5 4 ] [ 6 3 1 4 2 5 ] [ 6 3 1 4 5 2 ] [ 6 3 1 5 2 4 ] [ 6 3 1 5 4 2 ] [ 6 4 1 2 3 5 ] [ 6 4 1 2 5 3 ] [ 6 4 1 3 2 5 ] [ 6 4 1 3 5 2 ] [ 6 4 1 5 2 3 ] [ 6 4 1 5 3 2 ] [ 6 4 2 1 3 5 ] [ 6 4 2 1 5 3 ] [ 6 4 2 3 1 5 ] [ 6 4 2 3 5 1 ] [ 6 4 2 5 1 3 ] [ 6 4 2 5 3 1 ] [ 6 4 3 1 2 5 ] [ 6 4 3 1 5 2 ] [ 6 4 3 2 1 5 ] [ 6 4 3 2 5 1 ] [ 6 4 3 5 1 2 ] [ 6 4 3 5 2 1 ] [ 6 4 5 1 2 3 ] [ 6 4 5 1 3 2 ] [ 6 4 5 2 1 3 ] [ 6 4 5 2 3 1 ] [ 6 4 5 3 1 2 ] [ 6 4 5 3 2 1 ]