fork download
  1. #include<bits/stdc++.h>
  2. int temp;
  3. #define s(x) temp=scanf("%d",&x)
  4. using namespace std;
  5. int f=0;
  6. int visited[2001]={0};
  7. vector<int> arr[2001];
  8. int gender[2001];
  9. int dfs(int x, int y){
  10. if(visited[x]) return 0;
  11. if(gender[x]!=-1){
  12. if(y==1 && gender[x]==0) f=1;
  13. if(y==0 && gender[x]==1) f=1;
  14. return 0;
  15. }
  16. else{
  17. visited[x]=1;
  18. gender[x]=y;
  19. int t=arr[x].size();
  20. for(int i=0; i<t; i++){
  21. if(y==0) dfs(arr[x][i],1);
  22. if(y==1) dfs(arr[x][i],0);
  23. if(f==1){
  24. visited[x]=0;
  25. return 0;
  26. }
  27. }
  28. visited[x]=0;
  29. return 0;
  30. }
  31. }
  32. int main(){
  33. int t;
  34. s(t);
  35. for(int v=1; v<=t; v++){
  36. f=0;
  37. int n,m;
  38. s(n); s(m);
  39. for(int i=1; i<=n; i++) if(arr[i].size()) arr[i].clear();
  40. for(int i=0; i<m; i++){
  41. int x,y;
  42. s(x); s(y);
  43. arr[x].push_back(y);
  44. arr[y].push_back(x);
  45. }
  46. memset(gender,-1,sizeof(gender));
  47. for(int i=1; i<=n; i++){
  48. if(gender[i]==-1){
  49. dfs(i,1);
  50. }
  51. if(f==1) break;
  52. }
  53. if(f) cout<<"Scenario #"<<v<<":"<<endl<<"Suspicious bugs found!"<<endl;
  54. else cout<<"Scenario #"<<v<<":"<<endl<<"No suspicious bugs found!"<<endl;
  55. }
  56. }
  57.  
Success #stdin #stdout 0s 3272KB
stdin
2
3 3
1 2
2 3
1 3
4 2
1 2
3 4
stdout
Scenario #1:
Suspicious bugs found!
Scenario #2:
No suspicious bugs found!