Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #define MAX 50001
- int v[101];
- int maior(int a, int b, int c);
- int moedas(int m, int n);
- int main()
- {
- int m, n, resul;
- while( 1 )
- {
- scanf("%d", &m);
- if(m == 0)
- {
- break;
- }
- scanf("%d", &n);
- for(int i = 0; i < n; i++)
- {
- scanf("%d", &v[i]);
- }
- resul = (-1) * moedas(m, n - 1);
- if(resul > m)
- {
- printf("Impossivel\n");
- }
- else
- {
- printf("%d\n", resul);
- }
- }
- }
- int maior(int a, int b, int c)
- {
- int maior;
- if(a > b)
- {
- maior = a;
- }
- else
- {
- maior = b;
- }
- if(c > maior)
- {
- maior = c;
- }
- return(maior);
- }
- int moedas(int m, int n)
- {
- if(n < 0)
- {
- return((-1) * MAX);
- }
- if(m == 0)
- {
- return(0);
- }
- if(v[n] <= m)
- {
- return(maior(-1 + moedas(m - v[n], n), -1 + moedas(m - v[n], n - 1), moedas(m, n-1)));
- }
- else
- {
- return(moedas(m, n-1));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement