BUGLIFE - A Bug’s Life

Professor Hopper is researching the sexual behavior of a rare species of bugs. He assumes that they feature two different genders and that they only interact with bugs of the opposite gender. In his experiment, individual bugs and their interactions were easy to identify, because numbers were printed on their backs.

Given a list of bug interactions, decide whether the experiment supports his assumption of two genders with no homosexual bugs or if it contains some bug interactions that falsify it.


The first line of the input contains the number of scenarios. Each scenario starts with one line giving the number of bugs (at least one, and up to 2000) and the number of interactions (up to 1000000) separated by a single space. In the following lines, each interaction is given in the form of two distinct bug numbers separated by a single space. Bugs are numbered consecutively starting from one.


The output for every scenario is a line containing “Scenario #i:”, where i is the number of the scenario starting at 1, followed by one line saying either “No suspicious bugs found!” if the experiment is consistent with his assumption about the bugs’ sexual behavior, or “Suspicious bugs found!” if Professor Hopper’s assumption is definitely wrong.


3 3
1 2
2 3
1 3
4 2
1 2
3 4

Scenario #1:
Suspicious bugs found!
Scenario #2:
No suspicious bugs found!

hide comments
gopikrishna_p: 2017-06-25 20:56:49

Disaster CIN,COUT-WA :(
printf AC :)
wasted lot of time by trying different approaches

Last edit: 2017-06-25 21:01:26
jaykay12: 2017-06-19 13:17:02

Graph Coloring & Bipartite graph. Simple BFS. AC in one go. :)

ayushagg31: 2017-06-10 11:21:43

my 50th on spoj........:)

Last edit: 2017-06-10 13:02:30
cipher_097: 2017-06-09 09:35:40

Ac in 1 go!!
Bipartite Graph 0.13s .

anurag44: 2017-06-06 16:05:43

Got 1 WA because of considering this problem as a directed graph problem !! Finally got the test case and understood why i should consider only undirected graph..

leafbebop: 2017-06-02 19:45:01

No bfs, no dfs, no bipartie graph. Simple Union-Find Set would make it (with speed, indeed).
Hint #1:
Cycle of even length does not affect the divisibility by 2 ( wow, so many i in a word ) of length of paths between two node.
Hint #2:
let dist[i] be the distance of a path from i to parent[i]. update it with the find and union function. It can be improved to make dist a bool array.

starbot: 2017-05-16 13:00:09

using printf with ios_base WA..
replaced printf with cout AC...

prabodh prakash: 2017-05-10 20:39:53

Accepted in 0.05 secs. I solved it by sorting queries and then simply parsing queries to assign first element as male, second as female (if both unassigned). If one is assigned, other is !firstSex. If both are assigned and both are same - then its a faulty scenario. However, due to bad implementation, I got many WA's.

gulsntils_12: 2017-04-19 11:16:58

Use fast I/O in java otherwise you'll get TLE
just DFS with fast I/O will take 0.18 sec in java

iammangod96: 2017-04-03 12:38:23

If someone is not able to code using adjacency list and bfs, Check the followings -
1) There should be no checking for visited in while(!Q.empty()) loop.
2) Instead of using the adjacency list as a parameter in bipartite graph check function, make it global.
3) It may be possible the graph may have non connected components. So learn how to tackle this issue.

Added by:Daniel Gómez Didier
Time limit:0.150s-0.189s
Source limit:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Languages:All except: ERL JS-RHINO NODEJS PERL6 VB.NET
Resource:2007 PUJ - Circuito de Maratones ACIS / REDIS