Hi,↵
↵
I was working on this problem: https://codeforces.com/contest/771/problem/A↵
↵
By adding a return in front of my recursive call in the function "dfs2," I was able to get AC on this problem. Can anyone please explain why?↵
↵
Difference:↵
↵
~~~~~↵
bool dfs2(int u)↵
{↵
if(vis[u])↵
return false;↵
vis[u] = 1;↵
if(adj[u].size() != cur_sz - 1)↵
return false;↵
for(int v : adj[u])↵
if(!vis[v])↵
dfs2(v);↵
return true;↵
}↵
~~~~~↵
↵
as opposed to↵
↵
↵
~~~~~↵
bool dfs2(int u)↵
{↵
if(vis[u])↵
return false;↵
vis[u] = 1;↵
if(adj[u].size() != cur_sz - 1)↵
return false;↵
for(int v : adj[u])↵
if(!vis[v])↵
return dfs2(v);↵
return true;↵
}↵
~~~~~↵
↵
↵
↵
WA submission: https://codeforces.com/contest/771/submission/69394496↵
AC submission: https://codeforces.com/contest/771/submission/69395025
↵
I was working on this problem: https://codeforces.com/contest/771/problem/A↵
↵
By adding a return in front of my recursive call in the function "dfs2," I was able to get AC on this problem. Can anyone please explain why?↵
↵
Difference:↵
↵
~~~~~↵
bool dfs2(int u)↵
{↵
if(vis[u])↵
return false;↵
vis[u] = 1;↵
if(adj[u].size() != cur_sz - 1)↵
return false;↵
for(int v : adj[u])↵
if(!vis[v])↵
dfs2(v);↵
return true;↵
}↵
~~~~~↵
↵
as opposed to↵
↵
↵
~~~~~↵
bool dfs2(int u)↵
{↵
if(vis[u])↵
return false;↵
vis[u] = 1;↵
if(adj[u].size() != cur_sz - 1)↵
return false;↵
for(int v : adj[u])↵
if(!vis[v])↵
return dfs2(v);↵
return true;↵
}↵
~~~~~↵
↵
↵
↵
WA submission: https://codeforces.com/contest/771/submission/69394496↵
AC submission: https://codeforces.com/contest/771/submission/69395025