Submission #3848

#TimeUsernameProblemLanguageResultExecution timeMemory
3848wurikijiCactus? Not cactus? (kriii1_C)C++98
0 / 1
400 ms5096 KiB
#include <vector> #include <cstdio> #include <cstring> #include <cstdlib> #include <string> #include <algorithm> using namespace std; vector<int> node[100001]; bool chk[100001]; int ret; void dfs(int x, int src) { chk[x] = true; for(int i = 0 ;i < node[x].size();i++) { if( node[x][i] == src )ret++; if( ret > 1 ) return; if( !chk[node[x][i]] ) dfs(node[x][i], src); if( ret > 1 ) return; } } int main(void){ int n, m; scanf("%d %d",&n, &m); for(int i = 0 ;i < m ;i++) { int a, b; scanf("%d %d", &a, &b); node[a].push_back(b); } for(int i = 1;i <= n ;i++) { ret = 0; memset(chk,0,sizeof(chk)); dfs(i,i); if( ret > 1 ) { printf("Not cactus\n"); return 0; } } printf("Cactus\n"); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...