Language: C++

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cstring>
#include<cmath>
 
#define reg register
#define LL long long
#define cmin(a,b) ((a)<(b)?(a):(b))
#define cmax(a,b) ((a)>(b)?(a):(b))
 
const int MaxN = 100010;
 
struct Data{
	int Next, To;
}Tree[MaxN*2];
 
int Last[MaxN], T, N, Cnt, Dis_S[MaxN], Dis_T[MaxN];
bool Vis[MaxN];
 
inline int Read()
{
	reg int aa;reg char ch;while(ch=getchar(),ch<'0'||ch>'9'); aa=ch-'0';
	while(ch=getchar(),ch>='0'&&ch<='9') aa=(aa<<1)+(aa<<3)+ch-'0'; return aa;
}
 
inline void Insert(reg int u, reg int v)
{
	Tree[++Cnt].To = v;
	Tree[Cnt].Next = Last[u];
	Last[u] = Cnt;
}
 
inline void Dfs(reg int Node,reg int dep, reg int* Dis)
{
	//printf("%d\n", Node);
	Vis[Node] = 1;
	for(reg int x = Last[Node]; x; x = Tree[x].Next)
	{
		reg int y = Tree[x].To;
	//	printf("To : %d Vis : %d\n", y, Vis[y]);
		if(!Vis[y])
		{ 	
			Dis[y] = dep;
			Dfs(y, dep+1, Dis);
		}
	}
}
 
int main()

	Cnt = 0;
	N = Read();
	for(reg int i = 1; i < N; ++i)
	{
		reg int a, b;
		a = Read(), b = Read();
		Insert(a, b);
		Insert(b, a);
	}
	Dis_S[0] = Dis_T[N] = 0;
	Dfs(1, 1, Dis_S);
	memset(Vis, 0, sizeof(Vis));
	Dfs(N, 1, Dis_T);
	Cnt = 0;
	//	for(reg int i = 1; i <= N; ++i)
		//	printf("DisS[%d] = %d, DisT[%d] = %d\n", i, Dis_S[i], i, Dis_T[i]);
	for(reg int i = 1; i <= N; ++i)
		Dis_S[i] <= Dis_T[i] ? ++Cnt : --Cnt;
	Cnt > 0 ? puts("Fennec") : puts("Snuke");
	return 0;
 } 

Compiler output:
a.cc: In function 'int Read()':
a.cc:24:17: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   24 |         reg int aa;reg char ch;while(ch=getchar(),ch<'0'||ch>'9'); aa=ch-'0';
      |                 ^~
a.cc:24:29: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   24 |         reg int aa;reg char ch;while(ch=getchar(),ch<'0'||ch>'9'); aa=ch-'0';
      |                             ^~
a.cc: At global scope:
a.cc:28:28: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   28 | inline void Insert(reg int u, reg int v)
      |                            ^
a.cc:28:39: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   28 | inline void Insert(reg int u, reg int v)
      |                                       ^
a.cc:35:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   35 | inline void Dfs(reg int Node,reg int dep, reg int* Dis)
      |                         ^~~~
a.cc:35:38: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   35 | inline void Dfs(reg int Node,reg int dep, reg int* Dis)
      |                                      ^~~
a.cc:35:52: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   35 | inline void Dfs(reg int Node,reg int dep, reg int* Dis)
      |                                                    ^~~
a.cc: In function 'void Dfs(int, int, int*)':
a.cc:39:21: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   39 |         for(reg int x = Last[Node]; x; x = Tree[x].Next)
      |                     ^
a.cc:41:25: warning: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
   41 |                 reg int y = Tree[x].To;
      |                         ^
a.cc: At global scope:
a.cc:53:9: error: expected initializer before 'Cnt'
   53 |         Cnt = 0;
      |         ^~~
a.cc:54:9: error: 'N' does not name a type
   54 |         N = Read();
      |         ^
a.cc:55:9: error: expected unqualified-id before 'for'
   55 |         for(reg int i = 1; i < N; ++i)
      |         ^~~
a.cc:55:28: error: 'i' does not name a type
   55 |         for(reg int i = 1; i < N; ++i)
      |                            ^
a.cc:55:35: error: expected unqualified-id before '++' token
   55 |         for(reg int i = 1; i < N; ++i)
      |                                   ^~
a.cc:62:9: error: 'Dis_S' does not name a type
   62 |         Dis_S[0] = Dis_T[N] = 0;
      |         ^~~~~
a.cc:63:12: error: expected constructor, destructor, or type conversion before '(' token
   63 |         Dfs(1, 1, Dis_S);
      |            ^
a.cc:64:15: error: expected constructor, destructor, or type conversion before '(' token
   64 |         memset(Vis, 0, sizeof(Vis));
      |               ^
a.cc:65:12: error: expected constructor, destructor, or type conversion before '(' token
   65 |         Dfs(N, 1, Dis_T);
      |            ^
a.cc:66:9: error: 'Cnt' does not name a type; did you mean 'int'?
   66 |         Cnt = 0;
      |         ^~~
      |         int
a.cc:69:9: error: expected unqualified-id before 'for'
   69 |         for(reg int i = 1; i <= N; ++i)
      |         ^~~
a.cc:69:28: error: 'i' does not name a type
   69 |         for(reg int i = 1; i <= N; ++i)
      |                            ^
a.cc:69:36: error: expected unqualified-id before '++' token
   69 |         for(reg int i = 1; i <= N; ++i)
      |                                    ^~
a.cc:71:9: error: 'Cnt' does not name a type; did you mean 'int'?
   71 |         Cnt > 0 ? puts("Fennec") : puts("Snuke");
      |         ^~~
      |         int
a.cc:72:9: error: expected unqualified-id before 'return'
   72 |         return 0;
      |         ^~~~~~
a.cc:73:2: error: expected declaration before '}' token
   73 |  }
      |  ^