fork(4) download
  1. #include<iostream>
  2. #include<vector>
  3. #include<queue>
  4. #include<cstring>
  5. #include<utility>
  6. #include<map>
  7. #include<algorithm>
  8. #include<cstdio>
  9.  
  10. using namespace std;
  11.  
  12. vector<vector<int> > G(1000006);
  13. bool isCycle;
  14. int used[1000006];
  15.  
  16. void dfs(int v,int c1,int c2){
  17. used[v]=c1;
  18. for(size_t i=0;i<G[v].size(); i++){
  19. int to=G[v][i];
  20. if(used[to]==c1){
  21. isCycle=true;
  22. //dfs(to);
  23. break;
  24. //return true;
  25. }
  26. else if(used[to]== -1){
  27. //isCycle=true;
  28. dfs(to,c2,c1);
  29. //return true;
  30. }
  31. }
  32. //isCycle=false;
  33. //return false;
  34.  
  35. }
  36.  
  37.  
  38. int main(){
  39. int n;
  40.  
  41.  
  42.  
  43. //cin>>n;
  44. scanf("%d",&n);
  45. int cc=1;
  46. while(n-- >0){
  47.  
  48. fill_n(used,1000006 , -1);
  49. int a,s;
  50. //cin>>a>>s;
  51. scanf("%d %d", &a,&s);
  52. isCycle=false;
  53. while(s-- >0){
  54. int b1,b2;
  55. //cin>>b1>>b2;
  56. scanf("%d %d", &b1,&b2);
  57. G[b1-1].push_back(b2-1);
  58. G[b2-1].push_back(b1-1);
  59. }
  60.  
  61. for(int i=0;i<a;i++){
  62. if(used[i]== -1){
  63. dfs(i,0,1);
  64. }
  65. }
  66. //cout<<isCycle;
  67. if(isCycle){
  68. printf("Scenario #%d:\nSuspicious bugs found!\n",cc++);
  69.  
  70. }
  71. else{
  72. //cout<<"Scenario #"<<cc++ <<":"<<endl;
  73. //cout<<"No suspicious bugs found!";
  74. printf("Scenario #%d:\nNo suspicious bugs found!\n",cc++);
  75. }
  76. //cout<<"\n";
  77.  
  78. //memset(used,0,sizeof(used));
  79. for(int i=0;i<a;i++){
  80. G[i].clear();
  81. }
  82. //G.clear();
  83.  
  84. }
  85. return 0;
  86. }
  87.  
Success #stdin #stdout 0.02s 7340KB
stdin
3
4 2
1 2
3 4
3 3
1 2
2 3
1 3
5 0
stdout
Scenario #1:
No suspicious bugs found!
Scenario #2:
Suspicious bugs found!
Scenario #3:
No suspicious bugs found!