fork(4) download
  1. #include<iostream>
  2. #include<vector>
  3. #include<algorithm>
  4. using namespace std;
  5. int main()
  6. {
  7. long long int t,sum,newsum,cnt,index=0,n,cost,i,diff,tsum,fnd,flag=1,min=0,cnt1=0;
  8. cin>>t;
  9. while(t--)
  10. {
  11. cnt=0;
  12. cnt1=0;
  13. tsum=0;
  14. flag=1;
  15. cin>>n;
  16. cin>>sum;
  17. sum=sum*60;
  18. newsum=sum;
  19. vector<unsigned long long int> a(n);
  20. cost=0;
  21. for(i=0;i<n;i++)
  22. cin>>a[i];
  23. sort(a.begin(),a.end());
  24. for(i=0;i<n;i++)
  25. tsum=tsum+a[i];
  26. if(tsum < sum)
  27. cout<<tsum<<endl;
  28. else{
  29.  
  30. for(i=(n-1);i>=0;i--)
  31. {
  32.  
  33. if(newsum >= a[i])
  34. {
  35. if(flag!=0)
  36. {cost=cost+a[i];
  37. cnt1++;
  38. }
  39.  
  40. newsum=(newsum-a[i]);
  41. a[i]=-1;
  42. cnt++;
  43. }
  44. else
  45. flag=0;
  46. if(newsum==0)
  47. break;
  48. }
  49. if(newsum!=0)
  50. {
  51. cnt1++;
  52. min=a[n-1];
  53. for(i=n-1;i>=0;i--)
  54. {
  55.  
  56. if((a[i]!=-1) && (a[i]<=min) && (a[i]>=(sum-cost)))
  57. {
  58. min=a[i];
  59. }
  60. }
  61. diff=(min+cost)-(sum);
  62. cout<<cnt1<<" "<<diff<<endl;
  63. }
  64. else
  65. {
  66. cout<<cnt<<endl;
  67. }
  68. }
  69.  
  70.  
  71. }
  72.  
  73.  
  74. return 0;
  75. }
Success #stdin #stdout 0s 2868KB
stdin
4 1
50
60
20
30
stdout
60
0
0
0