Mojito aiuto caso esempio

#include<iostream>
#include<utility>
#include<math.h>
using namespace std;
int main(){
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
int X,Y,n;bool v[100];int N=0;
pair <int,int>pos;
pair <int,int>P[100],p[100];
int c=0;
cin>>X>>Y>>pos.first>>pos.second>>n;
for(int i=0;i<n;i++)
{ cin>>P[i].first>>P[i].second;
  cin>>p[i].first>>p[i].second;
}
for(int i=0;i<n;i++)
{int f=abs(pos.first-P[i].first)+abs(pos.second-P[i].second);
int d=abs(pos.first-p[N].first)+abs(pos.second-p[N].second);
if((f<d) || (f==d && P[i]<p[N]))
       N=i;
}
while(true){
int t=N;
if(v[t]) break;
else
{v[t]= true;
c++;
pos=p[t];}
}
cout<<c;	
}

chi può aiutarmi visto che funziona solo con il primo caso di esempio