diff --git a/AtCoder/AGC014/D/D.cpp b/AtCoder/AGC014/D/D.cpp new file mode 100644 index 00000000..65a8d140 --- /dev/null +++ b/AtCoder/AGC014/D/D.cpp @@ -0,0 +1,33 @@ +#include + +using namespace std; + +int n, u, v; +vector g[100005]; +bool flag, vis[100005]; + +void dfs(int u, int f) { + if (flag) return; + for (int i : g[u]) { + if (i != f) dfs(i, u); + } + if (!vis[u]) { + if (f == -1 || vis[f]) { + flag = true; + } else { + vis[f] = vis[u] = true; + } + } +} + +int main() { + cin >> n; + for (int i = 1; i < n; i++) { + cin >> u >> v; + g[u].push_back(v); + g[v].push_back(u); + } + dfs(1, -1); + cout << (flag ? "First" : "Second") << endl; + return 0; +}