Advertisement
Guest User

Untitled

a guest
Sep 18th, 2014
264
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.80 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. int bestMask, melhorSoma, maxDur, N, comps[20];
  4.  
  5. void processa(int mask){
  6. register int i, soma = 0;
  7. for(i = 0; i < N; i++){
  8. if((mask & (1<<i)) > 0)soma += comps[i];
  9. }
  10. if((soma <= maxDur) && (maxDur - soma) < (maxDur - melhorSoma)){
  11. bestMask = mask;
  12. melhorSoma = soma;
  13. }
  14. }
  15.  
  16. void bestSet(){
  17. register int i;
  18. for(i = 0; i < (1<<N); i++){
  19. processa(i);
  20. }
  21. }
  22.  
  23. main(){
  24. register int i;
  25. while(scanf("%d %d", &maxDur, &N) != EOF){
  26. melhorSoma = 0;
  27. for(i = 0; i < N; i++){
  28. scanf("%d", &comps[i]);
  29. }
  30. bestSet();
  31. for(i = 0; i < N; i++){
  32. if((bestMask & (1<<i)) > 0)printf("%d ", comps[i]);
  33. }
  34. printf("sum:%d\n", melhorSoma);
  35. }
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement