question CHEFRES

Can someone please point out the mistake I’m committing here. I’m getting a partially correct solution for the question CHEFRES Problem - CodeChef. Here goes my code.
CODE

#include<bits/stdc++.h>

using namespace std;

struct interval{

    int startTime, endTime;

   //Default constructor

    interval(){

        startTime = 0;

        endTime=0;

    }

   //Parameterised constructor

    interval(int start, int end){

        startTime = start;

        endTime = end;

    }

};

void getInterval(vector& newTimeIntervals, int intervalNumber){

int start, end;

for(int i=0;i<intervalNumber;i++){

    cin>>start>>end;

    interval value ( start, end );

    newTimeIntervals.push_back(value);

}

cout<<endl;

}

bool comp (const interval& a,const interval& b){

return a.startTime < b.startTime;

}

int result(vector& newIntervals, int arrivalTime){

int  ans;

interval value;

value.startTime=arrivalTime;

auto ogIndex= lower_bound( newIntervals.begin(),newIntervals.end(), value, comp);

auto tempIndex= ogIndex;

auto prevIndex= --ogIndex;

//edge case first

if(tempIndex == newIntervals.end())

    ans = -1;

else if(tempIndex == newIntervals.begin())

    ans = tempIndex->startTime - arrivalTime;

else{

    if(  arrivalTime < prevIndex->endTime )

        ans = 0;

    else if( arrivalTime <= tempIndex->startTime && arrivalTime >= prevIndex->endTime)

         ans = tempIndex->startTime - arrivalTime;    

}

return ans;    

}

int main(){

int t;

cin>>t;

while(t--){

    int intervalNumber, people;

    cin>>intervalNumber>>people;

    vector<interval> timeIntervals;

    getInterval(timeIntervals, intervalNumber);

    sort(timeIntervals.begin(), timeIntervals.end(), comp);

    while(people--){

        int currentInterval;

        cin>>currentInterval;

        cout<<result(timeIntervals, currentInterval)<<endl;

    }

    cout<<endl;    

}

return 0;    

}