What is wrong with my code?

#include

using namespace std;
#define ll long long int

int pivot(ll n, ll a[], ll k)
{
ll l=0,e=n-1,m,piv;
m=(l+e)/2;
while(l<=e)
{
if(a[m]<a[m-1])
{
piv=m-1;
break;
}
else if(a[m]>a[m+1])
{
piv=m;
break;
}
else
{
if(a[m]>=a[e])
{
l=m+1;
}
else if(a[m]<=a[l])
{
e=m-1;
}
}
}
if(a[piv]==k)
{
return piv;
}
if(k<a[0])
{
l=piv+1,e=n-1;
while(l<=e)
{
m=(l+e)/2;
if(a[m]==k)
{
return m;
}
else if(a[m]>k)
{
e=m-1;
}
else if(a[m]<k)
{
l=m+1;
}
}
}
else
{
l=0,e=piv-1;

    while(l<=e)
    {
        m=(l+e)/2;
        if(a[m]==k)
        {
            return m;
        }
        if(a[m]>k)
        {
            e=m-1;
        }
        else
        {
            l=m+1;
        }
    }
}

return -1;
}

int main() {
ll n,a[1000],k;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
cin>>k;
cout<<pivot(n,a,k);
return 0;
}

Hey @tusharnitharwal
you’re calculating m = (l+e)/2 only once in the beginning before while(l<=e) loop. You need to move that statement inside the while loop.
And please paste your code on IDE and then share it, some statements don’t appear if pasted directly as code.