fork download
  1. #include <stdio.h>
  2.  
  3. void quikcSort(int left,int right,int * group)
  4. {
  5. int l,r,pivot = 0;
  6. int temp = 0;
  7.  
  8. if(left<right){
  9. l=left-1;
  10. r=right+1;
  11. pivot=group[(left+right)/2];
  12.  
  13. while(1){
  14. while(group[++l]<pivot);
  15. while(group[--r]>pivot);
  16.  
  17. if(l>=r)
  18. break;
  19.  
  20. temp=group[l];
  21. group[l]=group[r];
  22. group[r]=temp;
  23. }
  24.  
  25. quikcSort(left,l-1,group);
  26. quikcSort(r+1,right,group);
  27. }
  28. }
  29.  
  30. int main()
  31. {
  32. int number = 0;
  33. int company = 0;
  34.  
  35. scanf("%d %d",&number,&company);
  36.  
  37. int * group = new int[company];
  38. int * ones = new int[company];
  39. int result = 0;
  40. for(int i=0;i<company;i++)
  41. {
  42. scanf("%d %d",&group[i],&ones[i]);
  43. }
  44.  
  45. quikcSort(0,company-1,group);
  46. quikcSort(0,company-1,ones);
  47.  
  48. while(number>0)
  49. {
  50. if(number%6==0)
  51. {
  52. if(group[0]<=ones[0]*6)
  53. {
  54. number -= 6;
  55. result += group[0];
  56. }else
  57. {
  58. number -= 6;
  59. result += ones[0]*6;
  60. }
  61. }else
  62. {
  63. if(group[0]<= ones[0])
  64. {
  65. number -= 6;
  66. result += group[0];
  67. }else if( number<6&&group[0] >= ones[0]*number )
  68. {
  69. number -= number;
  70. result += ones[0] * number;
  71. }
  72. else
  73. {
  74. number -= 1;
  75. result += ones[0];
  76. }
  77. }
  78. }
  79.  
  80. printf("%d\n",result);
  81. }
Success #stdin #stdout 0s 4300KB
stdin
4 2
12 3
15 4
stdout
0