# include # include # include # include # include # include # include #include using namespace std; vector g[100005]; int vis[100005]; int idx1= 0; priority_queue > > q; vector ans[2]; int otg=0; long long otgsum=0; int parent[100005]; long long weight[100005]; int n,m; void FINDMAXPATH(int from) { q.push({0,{0,from}}); weight[from]=0; int i,j,v,prev,w; while(!q.empty()) { v = q.top().second.second; w = q.top().first; prev = q.top().second.first; q.pop(); if(vis[v]==idx1)continue; vis[v]=idx1; weight[v]=w; parent[v]=prev; for(i=0;i>n>>m; int i,j; int u,v; for(i=1;i<=m;i++) { cin>>u>>v; g[u].push_back(v); g[v].push_back(u); } int cur=n; int p=1,maxs=0; int br=1; long long sum=0; long long sum2=0; while(cur>1) { idx1++; clock_t end = clock(); double elapsed_secs = double(end - begin) / CLOCKS_PER_SEC; // cout<=3.0)break; cur--; ans[1-otg].clear(); FINDMAXPATH(cur); p=1; maxs=0; for(i=1;i<=n;i++) { if(maxsotgsum||sum2>otgsum) {otg=1-otg;otgsum=max(sum,sum2);//cout<=0;i--) { sum2+=br*ans[otg][i]; br++; } sum2=0; br=1; for(i=0;i=sum) { for(i=0;i=0;i--) cout<