首页 > 代码库 > hdu 1009 qsort运用

hdu 1009 qsort运用

  1. #include <string>
  2. #include <stdio.h>
  3. #include <iostream>
  4. #include <string.h>
  5. #include <set>
  6. #include <math.h>
  7. #include <stdlib.h>
  8. //using namespace std;
  9. struct type
  10. {
  11. float javabean,food;
  12. float leve;
  13. }num[1010];
  14. int cmp(const void *x, const void *y)
  15. {
  16. return (*(type *)x).leve > (* (type *) y).leve ? -1:1 ;
  17. }
  18. int main()
  19. {
  20. int m,n;
  21. while( ~scanf("%d%d", &m, &n) && m != -1)
  22. {
  23. for(int i=0; i<n; i++)
  24. {
  25. scanf("%f%f", &num[i].javabean, &num[i].food);
  26. num[i].leve = num[i].javabean /num[i].food;
  27. }
  28. qsort(num, n, sizeof(type), cmp);
  29. float max=0;
  30. for(int i=0; i<n; i++)
  31. {
  32. if(m < num[i].food )
  33. {
  34. max += m /num[i].food * num[i].javabean;
  35. break;
  36. }
  37. else
  38. {
  39. max += num[i].javabean;
  40. m -= num[i].food;
  41. }
  42. }
  43. printf("%.3f\n", max);
  44. }
  45. return 0;
  46. }



来自为知笔记(Wiz)


附件列表

     

    hdu 1009 qsort运用