Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>#include <vector>#include <string>#include <map>#include <algorithm>#include <queue>#include <sstream>#include <memory.h>using namespace std;vector<int> graph[100001];void getSum(const vector<int>& weight, vector<int> &sum, int i){//cout << "hi!" << i << endl;sum[i] = weight[i];for (int j = 0; j < graph[i].size(); j++)getSum(weight, sum, graph[i][j]), sum[i] += sum[graph[i][j]];}int getallcnt(const vector<int>& sum, vector<int> &cnt, int i, vector<int> &cnt2, int S){//cout << "hi!" << i << endl;int total = 0;for (int j = 0; j < graph[i].size(); j++){if (sum[i] == S) {cnt2[graph[i][j]] = cnt2[i] + 1;}else {