Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- #define max 100000
- vector<int> graph[max];
- vector<int> visited;
- int color[max];
- void dfs(int n) {
- visited[n] = true;
- for (int i : graph[n]) {
- if (color[n] == 0) {
- color[i] = 1;
- } else if (color[n] == 1) {
- color[i] = 0;
- }
- if (!visited[i]) {
- dfs(i);
- }
- }
- }
- int main() {
- int t, v, e, count(1);
- int a, b;
- cin >> t;
- while (t--) {
- cin >> v >> e;
- visited.assign(v + 3, false);
- bool bicolorable = true;
- memset(color, 0, sizeof(color));
- for(int i = 0; i < v + 3; i++) {
- graph[i].clear();
- }
- for (int i = 0; i < e; i++) {
- cin >> a >> b;
- graph[a].push_back(b);
- graph[b].push_back(a);
- }
- dfs(a);
- int c;
- for (int i = 0; i < v + 3; i++) {
- if (graph[i].size() > 0) {
- c = color[i];
- for (int j = 0; j < graph[i].size(); j++) {
- if (c == graph[i][j]) {
- bicolorable = false;
- break;
- }
- }
- }
- if (!bicolorable) {
- break;
- }
- }
- printf("Scenario #%d:\n",count++);
- if(bicolorable) printf("No suspicious bugs found!\n");
- else printf("Suspicious bugs found!\n");
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement