fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main() {
  5. // your code goes here
  6. int t,i,n,k;
  7. cin>>t;
  8. while(t--){
  9. cin>>n>>k;
  10.  
  11. int ar[n];
  12. int sum=0;
  13.  
  14. for(i=0;i<n;i++){
  15. cin>>ar[i];
  16. sum+=ar[i];
  17. }
  18. if(sum<k){
  19. cout<<-1<<endl;
  20. }
  21. else if(sum==k&&n==1){
  22. cout<<n<<endl;
  23. }
  24. else{
  25. vector<int>pre;
  26. int ans=0;
  27. pre.push_back(ar[0]);
  28. for(i=1;i<n;i++){
  29. pre.push_back(pre[i-1]+ar[i]);
  30. //cout<<pre[i-1];
  31. if(pre[i]>=k){
  32. int rem=pre[i]-k;
  33. if(rem==0){
  34. ans=max(ans,i+1);
  35. }
  36. else{
  37. int indx=lower_bound(pre.begin(),pre.end(),rem)-pre.begin();
  38. ans=max(ans,i-indx);
  39. }
  40. }
  41.  
  42.  
  43.  
  44. }
  45.  
  46.  
  47. cout<<n-ans<<endl;
  48.  
  49. }
  50. }
  51.  
  52. return 0;
  53. }
Success #stdin #stdout 0.01s 5360KB
stdin
1
1 1
1 
stdout
1