fork download
  1. #include<string.h>
  2. #include<stdlib.h>
  3. #include<stdio.h>
  4. #define pc putchar_unlocked
  5. #define gc getchar_unlocked
  6. #define ll long long unsigned int
  7. ll m() {
  8. ll tmp;
  9. scanf("%lld", &tmp);
  10. return tmp;
  11. /* ll x=0;
  12.  char c=gc();
  13.  while(c<48||c>57)
  14. c=gc();
  15.  while(c>=48&&c<=57) {
  16. x=x*10+c-48; c=gc(); }
  17. return x;*/
  18. }
  19.  
  20. int compare(const void *a,const void *b)
  21. {
  22. return( *(ll*)a - *(ll*)b );
  23. }
  24. ll a[8];
  25. int main() {
  26. int n,f,i,c;
  27. ll t,M,p;
  28. t=m();
  29. while(t--) {
  30. f=0;
  31. c=0;
  32. p=0;
  33. memset(a,0,sizeof(a));
  34. n=m();
  35. M=m();
  36. for(i=0;i<=n-1;i++)
  37. a[i]=m();
  38. qsort(a,n,sizeof(ll),compare);
  39. for(i=n-1;i>=0;i--)
  40. {
  41. p+=a[i];
  42. c++;
  43. if(p>=M) {
  44. f=1;
  45. break;
  46. }
  47. }
  48. if(f==1)
  49. printf("%d\n",c);
  50. else
  51. printf("-1\n");
  52. }
  53. return 0;
  54. }
Success #stdin #stdout 0s 3344KB
stdin
1
2 90000000000
1 90000000000
stdout
2