#include const int maxn = 100000; const int maxm = 500000; int edge[maxm + 1][3]; int point[maxm + 1]; int ind[maxm + 1]; int m, n; void swap(int &a, int &b) { int tmp = a; a = b; b = tmp; } int partition(int l, int r) { int i = l; for (int j = l; j < r; j++) if (edge[ind[j]][2] < edge[ind[r]][2]) swap(ind[j],ind[i++]); swap(ind[i],ind[r]); return i; } void Qsort(int l, int r) { if(l