fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. main(){
  5. int n,k,mn,sum=0;
  6. cin>>n>>k;
  7. mn=n;
  8. vector<int>v(n);
  9. for(auto &it:v)cin>>it;
  10. unordered_map<int,int>mp;
  11. for(int i=0;i<n;i++){
  12. sum+=v[i];
  13. if(sum==k){
  14. mn=min(mn,i+1);
  15. }
  16. if(mp.find(sum-k)!=mp.end()){
  17. mn=min(mn,i-mp[sum-k]);
  18. }
  19. mp[sum]=i;
  20. }
  21. if(mn==n&&sum>=k)cout<<n<<"\n";
  22. else if(mn!=n)cout<<mn<<"\n";
  23. else cout<<-1<<"\n";
  24. }
Success #stdin #stdout 0.01s 5308KB
stdin
4 5
-8 -8 -3 8
stdout
2