5400 unordered_map<string, int> zodiacs;
5401 unordered_map<string, cow *> cows;
5403 zodiacs[
"Tiger"] = 1;
5404 zodiacs[
"Rabbit"] = 2;
5405 zodiacs[
"Dragon"] = 3;
5406 zodiacs[
"Snake"] = 4;
5407 zodiacs[
"Horse"] = 5;
5408 zodiacs[
"Goat"] = 6;
5409 zodiacs[
"Monkey"] = 7;
5410 zodiacs[
"Rooster"] = 8;
5412 zodiacs[
"Pig"] = 10;
5413 zodiacs[
"Rat"] = 11;
5414 cows[
"Bessie"] =
new cow(
"Bessie", 0, zodiacs[
"Ox"]);
5415 for(
int i = 0; i < n; i++) {
5419 cin >> name1 >> str >> str >> str;
5420 const bool previous = str ==
"previous";
5422 const int zodiac = zodiacs[str];
5423 cin >> str >> str >> name2;
5426 if(!cows.contains(name1)) {
5427 cow1 =
new cow(name1, -1, zodiac);
5433 if(!cows.contains(name2)) {
5434 cow2 =
new cow(name2, -1, -1);
5441 cow1->
next.push_back(cow2);
5443 cow2->
next.push_back(cow1);
5447 cout << abs(
dfs(cows[
"Bessie"]));