fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int getSmall(vector<int> &arr,int L,int R){
  4. int mini=1e9;
  5. int n=arr.size();
  6. for(int i=0;i<n;i++){
  7. unordered_map<int,int>mp;
  8. for(int j=i;j<n;j++){
  9. if(arr[j]>=L && arr[j]<=R){
  10. mp[arr[j]]=mp[arr[j]]+1;
  11. }
  12. if(mp.size()==abs(R-L+1)){
  13. int len=abs(j-i+1);
  14. mini=min(len,mini);
  15. }
  16.  
  17. }
  18. }
  19. if(mini==1e9){
  20. return -1;
  21. }
  22. return mini;
  23. }
  24.  
  25. int main() {
  26. // your code goes here
  27. int n;
  28. vector<int>v(n);
  29. for(int i=0;i<n;i++){
  30. cin>>v[i];
  31. }
  32. int L;
  33. cin>>L;
  34. int R;
  35. cin>>R;
  36. cout<<"Smallest subarray containing all the numbers from the range L to R is:"<<getSmall(v,L,R);
  37. return 0;
  38. }
Success #stdin #stdout 0.01s 5316KB
stdin
5
5 2 4 3 1
2 
3
stdout
Smallest subarray containing all the numbers from the range L to R is:-1