Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>#include <vector>#include <cstring>#include <queue>using namespace std;#define MAX_N 100001vector<pair<int, int>> edges[MAX_N];vector<vector<int>> group;int parGroup[MAX_N];int rScore[MAX_N];bool visited[MAX_N];void paint(int a) {queue<int> toVisit;group.push_back({});int gid = group.size();vector<int>& grp = group.back();toVisit.push(a);while(!toVisit.empty()) {int cur = toVisit.front();toVisit.pop();grp.push_back(cur);parGroup[cur] = gid;for(const auto& r : edges[cur]) {