fork(1) download
  1. import java.io.*;
  2. import java.util.*;
  3. import java.util.StringTokenizer;
  4. class City2
  5. {
  6. public static void main(String args[])throws IOException
  7. {
  8. int t;
  9. t=Integer.parseInt(br.readLine());
  10. while(t>0)
  11. {
  12. int n,m;
  13. StringTokenizer st=new StringTokenizer(br.readLine()," ");
  14. n=Integer.parseInt(st.nextToken());
  15. m=Integer.parseInt(st.nextToken());
  16. int a[]=new int[n];
  17. for(int i=0;i<n;i++)
  18. a[i]=Integer.parseInt(br.readLine());
  19. int sum=0;
  20. for(int i=0;i<n;i++)
  21. sum+=a[i];
  22. int temp[]=new int[n];
  23. int te[]=new int[n];
  24. int p=0;
  25. if(sum<m)
  26. System.out.println("No");
  27. else if(sum==m)
  28. System.out.println("Yes");
  29. else
  30. {
  31. Arrays.sort(a);
  32. int k=m,f=0,i;
  33. for(i=n-1;i>=0;i--)
  34. {
  35.  
  36. if((i==0&&k!=0)&p>=0)
  37. {
  38. if(k-a[i]==0)
  39. {
  40. k=0;
  41. break;
  42. }
  43. else
  44. {
  45. k=k+temp[p-1];
  46. i=te[p-1];
  47. p--;
  48.  
  49.  
  50. }
  51.  
  52. }
  53.  
  54.  
  55. else if(a[i]==m)
  56. {
  57. System.out.println("Yes");
  58. break;
  59. }
  60.  
  61. else if(a[i]<=k)
  62. {
  63. k=k-a[i];
  64. temp[p]=a[i];
  65. te[p]=i;
  66. p++;
  67. }
  68. if(k==0)
  69. {
  70. System.out.println("Yes");
  71. break;
  72. }
  73. }
  74. if(k!=0)
  75. System.out.println("No");
  76. else
  77. System.out.println("Yes");
  78. }
  79. t--;
  80. }
  81. }
  82. }
Success #stdin #stdout #stderr 0.04s 711168KB
stdin
1
7 112
14
21
33
40
54
65
76
stdout
Yes
stderr
Java HotSpot(TM) Client VM warning: No monotonic clock was available - timed services may be adversely affected if the time-of-day clock changes