For this Question: Rohit loves vowels and he likes a string if it contains all the vowels atleast once.
You are given a String S of length N integers. Find minimum length substring of S which contains all vowels atleast once (it may contain other characters too).The first line contains string length and the second line contains the string.

Constraints 
1 <= N <= 100000
String contains lowercase english alphabetsThe output should contain only one integer which is the length of minimum length substring containing all vowels. If no such substring exists print -1.Sample input 1: 
7
aeiddou

Sample output 1:
7

Sample input 2: 
7
daeioud

Sample output 2:
5

Sample input 3: 
7
daeiodd

Sample output 3:
-1, I have written this Solution Code: #include <bits/stdc++.h>
using namespace std;



int main()
{
int t;
t=1;
while(t--){
int n;
cin>>n;
string s;
cin>>s;

map<char,int> m;
m['a']=0;
m['e']=0;
m['i']=0;
m['o']=0;
m['u']=0;
int cnt=0, ans=INT_MAX,j=0;
for(int i=0;i<n;i++){
        if(m.find(s[i])!=m.end()){
                if(m[s[i]]==0){cnt++;}
            m[s[i]]++;
        }
        if(cnt==5){
            ans=min(ans,i-j+1);
            while(1){
                if(m.find(s[j])!=m.end()){m[s[j]]--;
                if(m[s[j]]==0){j++;

            break;}

                }
                j++;

            ans=min(ans,i-j+1);
            }
            cnt--;
        }
}
if(ans==INT_MAX){cout<<-1;return 0;}
cout<<ans<<endl;}




}
, In this Programming Language: C++, Now tell me if this Code is compilable or not?