n 条旅行路线
自己的机场 也就是起点
然后线
肯定是从起点开始
但是样例不一定第一个就是起点
所有要找一下
#include<stdio.h> #include<algorithm> #include<string.h> #include<math.h> #include<set> #include<string> using namespace std; typedef long long LL; #define MAXN 100010 char name[5]; char s[105][15]; bool vis[MAXN]; int main() { int n; scanf("%d",&n); scanf("%s",name); for(int i=1;i<=n;i++) scanf("%s",s[i]); int st=0; for(int i=1;i<=n;i++)//找一个起点 if(name[0]==s[i][0]&&name[1]==s[i][1]&&name[2]==s[i][2]) { st=i; vis[i]=1; break; } int cnt=0; while(1) { for(int i=1;i<=n;i++) { if(vis[i]==0&&s[i][0]==s[st][5]&&s[i][1]==s[st][6]&&s[i][2]==s[st][7]) { st=i; vis[i]=1; break; } } int ok=0; for(int i=1;i<=n;i++) //判断到过所有点 if(vis[i]==0) ok=1; if(ok==0) break; cnt++; if(cnt>10000)//走不出来 break; } if(s[st][5]==name[0]&&s[st][6]==name[1]&&s[st][7]==name[2])//回到起点 printf("home "); else printf("contest "); return 0; }