View difference between Paste ID: xzxedrR8 and czwqa1DZ
SHOW: | | - or go back to the newest paste.
1
#include <cstdio>
2
#include <cstring>
3
4
int m;
5
int min;
6
int n;
7
int coins[1000];
8
int cur[100000];
9
int result[100000];
10
void sub(int s,int k)
11
{
12
 if (s > m)
13
   return;
14
 if (s == m)
15
 {
16
  if (min > k)
17
  {
18
     min = k;
19
     memcpy(result, cur, k*sizeof(int));
20
  }
21
  return;
22-
     cur[k] = coints[i];
22+
23
 for (int i=0; i<n; ++i)
24
 {
25
     cur[k] = coins[i];
26
     sub(s+coins[i],k+1);
27
 }
28
}
29
30
void main()
31
{
32
 scanf("%d %d",&n, &m);
33
 for (int i=0; i<n; ++i)
34
   scanf("%d", coins[i]);
35
 min = 1000000;
36
 sub(0,0);
37
 for (int i=0; i<k; ++i)
38
   printf("%d, ",result[i]);
39
}