#include<bits/stdc++.h>
using namespace std;
int n;
map<string, int>mp;
string t[13] = {"Ox", "Tiger", "Rabbit", "Dragon", "Snake", "Horse",
"Goat", "Monkey", "Rooster", "Dog", "Pig", "Rat"}; //存储生肖
int main()
{
cin>>n;
mp["Bessie"] = 0;
while(n -- ){
string a, b, c, d, e, f, g, h;
cin>>a>>b>>c>>d>>e>>f>>g>>h;
if(d == "previous"){
int k;
for(k = mp[h] - 1; ; k -- ){//因为h的年份一定是被初始化过的,所以一定可以找到一个确定的值
if(t[(k + 12 * 5000) % 12] == e) break;
}
mp[a] = k;
}
else if(d == "next"){
int k;
for(k = mp[h] + 1; ;k ++ ){//从已经确定的年份向后找
if(t[(k + 12 * 5000) % 12] == e) break;
}
mp[a] = k;
}
}
cout<<abs(mp["Elsie"])<<endl;
return 0;
}
AcWing 3370 牛年 题解(模拟 春季每日一题)
于 2022-03-16 00:22:11 首次发布