I have written a code to calculate on how to calculate the longest consecutive subsequence .Pls help me where i am wrong.Here is my code
#include
#include
#include
using namespace std;
int longest_subsequence(int a[],int n){
map<int,int>m;
for(int i=0;i<n;i++){
m.insert(make_pair(i,a[i]));
}
int p,q,ans;
ans=0;
int cnt=0;
p=a[0];
q=a[n-1];
for(int i=p;i<=q;i++){
if(m.count(i)>0){
cnt++;
}
else{
ans=max(ans,cnt);
cnt=0;
continue;
}
}
return ans;
}
int main(){
int n;
cin>>n;
int a[n];
for(int i=0;i<n;i++){
cin>>a[i];
}
sort(a,a+n);
cout<<longest_subsequence(a,n)<<endl;
return 0;
}