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
sonudoo: 2016-09-15 17:28:34

0.03 seconds, 9.9 MB AC in C. Use Adjacency list.

Last edit: 2016-09-15 17:29:34
nishabha: 2016-09-14 10:31:12

@ Ray Brish Bhanu:
It's not necessary that the graph u get is always connected. The description may not include some bug and in that case , the node representing that bug will not be a part of the graph u are considering. What I want to say is that u should have considered this as a forest and not a graph or tree. You can consider the sample testcase above and it should be clear. Like (1&2) -> one component and (3&4) another connected component.

ondrej_budac: 2016-09-08 15:17:31

Can be done using union-find (0.03s with C++).

gustavoaca1997: 2016-08-30 21:40:09

Always slipping up at "(...) are numbered consecutively starting from one" in every graph problem.

Saif : 2016-08-16 21:10:10

In case of wa try this case:
6 4
1 2
2 3
4 5
5 6
Output should be No suspicious bugs found!

Ray Brish Bhanu: 2016-08-16 08:58:43

test case is poorly designed...if u take last edge source then u will get ac...incase of very fist node source u will get wrong answer(using bfs)
..................comment credits-vishal ranchhod bhai patel(gujarat)

Last edit: 2016-08-16 09:00:37
sriraj: 2016-08-14 00:03:39

Dont ignore the Scenario #1 cost me a WA
Some test cases in the toolkit have incorrect answer. Admin plz look to it.

Last edit: 2016-08-14 00:04:47
sshreyaa: 2016-08-05 09:38:42

The output format....be careful else its gonna fuck u hard!!!2 WA's!!

harshgupta007: 2016-08-04 08:21:54

can we implement this using hashset in java

Nikola Zhechev: 2016-07-25 15:27:07

"giving NZEC - runtime error with python while the code is running perfectly fine."
Probably stack overflow error. Try to test with some extreme case - very deep tree for example (1 2, 2 3, 3 4, ... up to 1999 2000)

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 NODEJS PERL 6 VB.net
Resource:2007 PUJ - Circuito de Maratones ACIS / REDIS