#include<vector>
#include<fstream>
using namespace std;
vector <int> student1;
vector <int> student2;
///////////////////////
vector<int> circleOfFriends(vector <int> student1, vector <int> student2)
{
vector <int> completeC;
completeC.push_back(student1[0])
for (int i(1) ; i < student1.size() ; i++)
{
if (student1[i] == student2[i-1])
completeC.push_back(student1[i]);
else
{
completeC.push_back(0);//separates all the friends
completeC.push_back(student1[i])
}
}
return completeC;//returns vector of circles of friends
}
//-----------------------------General Calc------------------------------//
int generalCalc(vector <int> student1, vector <int> student2, int f1, int f2)
{
vector <int> :: const_iterator ZeroHolder;//these will keep track of "0"'s
//getting the circle of friends
vector <int> sortedVec = circleOfFriends(vector <int> student1, vector <int> student2);
ZeroHolder = find(sortedVec.begin(), sortedVec.end(), 0);
if (ZeroHolder != sortedVec.end())//there is more than one circle of friends
{
vector <int> :: const_iterator ZeroHolder2;
vector <int> :: const_iterator Friend1;
vector <int> :: const_iterator Friend2;
}
else//there is only one circle of friends
{
vector <int> :: const_iterator Friend1;
vector <int> :: const_iterator Friend2;
Friend1 = find(sortedVec.begin(), sortedVec.end(), f1);
Friend2 = find(sortedVec.begin(), sortedVec.end(), f2);
if ((Friend1 != sortedVec.end()) && (Friend2 != sortedVec.end()))//freinds
{
int count; //will hold the separation
for (int i(Friend1) ; i < Friend2 ; i++)
count++;
}
else
return -1;//not friends
return count;
}
}
//----------------------------main-------------------------//
int main()
{
ofstream fout("s3.out");
ifstream fin("s3.in");
int s1, s2;
int fa;//friendship amount
fin>>fa;
for (int i(0) ; i < fa ; i++)
{
fin>> s1 >> s2;
//doesn't belong here :
student1.push_back(s1);
student2.push_back(s2);
}
//////////////////////
int f1, f2;
while( 1 )
{
fin>>f1>>f2;
if ((f1 == 0) || (f2 == 0)) break;
if (generalCalc(student1, student2, f1, f2) == -1) fout<<"NO";
else fout<<"YES"<<generalCalc(student1, student2, f1, f2);
}
return 0;
}