File tree 1 file changed +56
-0
lines changed
1 file changed +56
-0
lines changed Original file line number Diff line number Diff line change
1
+ // 15664 N과 M(10)
2
+ #include < iostream>
3
+ #include < vector>
4
+ #include < algorithm>
5
+ using namespace std ;
6
+
7
+ int n, m;
8
+ vector<bool > isused;
9
+ vector<int > arr;
10
+ vector<int > vis;
11
+
12
+ void func (int k){
13
+ if (vis.size () == m)
14
+ {
15
+ for (int i =0 ; i<m; i++)
16
+ {
17
+ cout << arr[vis[i]] << ' ' ;
18
+ }
19
+ cout << ' \n ' ;
20
+ return ;
21
+ }
22
+ bool check[10001 ] = {};
23
+ for (int i =k; i<n; i++)
24
+ {
25
+ if (!check[arr[i]]&&!isused[i])
26
+ {
27
+ isused[i] = 1 ;
28
+ check[arr[i]] = 1 ;
29
+ vis.push_back (i);
30
+ func (i);
31
+ isused[i] = 0 ;
32
+ vis.pop_back ();
33
+
34
+ }
35
+
36
+ }
37
+ }
38
+
39
+ int main () {
40
+ ios::sync_with_stdio (0 );
41
+ cin.tie (0 );
42
+
43
+ cin >> n >> m;
44
+ int k;
45
+ for (int i =0 ; i<n; i++)
46
+ {
47
+ cin >> k;
48
+ arr.push_back (k);
49
+ }
50
+ sort (arr.begin (), arr.end ());
51
+
52
+ isused = vector<bool >(n, false );
53
+ func (0 );
54
+
55
+ return 0 ;
56
+ }
You can’t perform that action at this time.
0 commit comments