Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <set>#include <map>#include <stack>#include <queue>#include <cmath>#include <vector>#include <string>#include <cstdio>#include <cstring>#include <cstdlib>#include <iostream>#include <algorithm>#define MAX(a,b) ((a)>=(b)?(a):(b))#define MIN(a,b) ((a)<=(b)?(a):(b))#define OO 0x0fffffffusing namespace std;typedef long long LL;const int N = 1E5+7;struct Edge{int to;int next;};int cost[N];LL maxCost[N];int heads[N];Edge edgs[N];bool degree[N];int eid = 0;LL ans = 0;LL dfs(int id){