Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <stdio.h>#include <string.h>#include <map>#include <vector>#include <queue>using namespace std;#define N 10002#define M 50002int N_island, N_bridge;int bridgs[M][2];bool islands_label[N];queue<int> Q;struct Node {int id;int degree;vector<int> neigbors;} islands[N];void init(){for (int i = 1; i <= N_island; i++ ) {islands[i].degree = 0;}for (int i = 0; i < N_bridge; i++) {int a = bridgs[i][0], b = bridgs[i][1];islands[a].degree++;islands[a].neigbors.push_back(b);islands[b].degree++;islands[b].neigbors.push_back(a);