#include <iostream> #include <string> #include <vector> #include <cmath> using namespace std; int main() { int n = 0; cin >> n; string str1, str2; cin >> str1 >> str2; vector<string> str; for (int i = 0; i < n; i++) { string tmp; cin >> tmp; str.push_back(tmp); } int minDist = n; // 初始化最小距离为数组长度 int index1 = -1, index2 = -1; // 记录最近出现的索引 for (int i = 0; i < n; i++) { if (str[i] == str1) { index1 = i; if (index2 != -1) { minDist = min(minDist, abs(index1 - index2)); } } else if (str[i] == str2) { index2 = i; if (index1 != -1) { minDist = min(minDist, abs(index1 - index2)); } } } if (index1 == -1 || index2 == -1) { cout << -1; } else if (minDist == n) { cout << -1; } else { cout << minDist; } return 0; }