int main(){ scanf("%d %d %d %d", &n, &m, &k, &Q); for(int i = 0; i < Q; i++){ int a, b, c; scanf("%d %d %d", &a, &b, &c); q.eb(c, a, b); } sort(q.begin(), q.end()); int lo = 0, hi = 1000000001; while(lo < hi){ int mid = (lo + hi) / 2; if(f(mid)) hi = mid; else lo = mid+1; } if(lo == 1000000001) lo = -1; printf("%d\n", lo); return 0; }
int main(){ int n,m; cin>>n>>m; while(m--){ int u,v; ll c; cin>>u>>v>>c; pq.push({c,pii(u,v)}); E.eb(c,pii(u,v)); } djs.init(1006); int pointsssss=1; ll firstttttt=0; while(pq.size()){ if(!djs.C(pq.top().Y.X,pq.top().Y.Y)){ G[pq.top().Y.X].eb(pq.top().Y.Y,pq.top().X); G[pq.top().Y.Y].eb(pq.top().Y.X,pq.top().X); ++pointsssss; firstttttt+=pq.top().X; djs.U(pq.top().Y.X,pq.top().Y.Y); } pq.pop(); } if(pointsssss<n)return cout<<"-1 -1"<<endl,0; if(E.size()==n-1)return cout<<firstttttt<<" -1"<<endl,0; dfs(1,1,1); PDE1(firstttttt); ll diffffffff=1000000000000000000ll; for(auto i:E){ if(p[0][i.Y.X]==i.Y.Y || p[0][i.Y.Y]==i.Y.X)continue; PDE1(i); diffffffff=min(diffffffff,i.X-lca(i.Y.X,i.Y.Y)); } cout<<firstttttt<<" "<<firstttttt+diffffffff<<endl; }
int main(){ int n; ld d; cin>>n>>d; for(int i=0;i<n;++i){ ld x,y; cin>>x>>y; pt.eb(x,y); } sort(pt.begin(),pt.end(),[](const pair<ld,ld> &a,const pair<ld,ld> &b){return a.X==b.X?abs(a.Y)>abs(b.Y):a.X<b.X;}); int cnt=0; ld lx=-1e20; for(int ii=0;ii<pt.size();++ii){ auto i=pt[ii]; if(dist(lx,0,i.X,i.Y)>d){ ++cnt; nc[ii]=1; if(abs(i.Y)>d){ cnt=-1; break; } lx=i.X+sqrt(d*d-i.Y*i.Y); for(int j=ii-1;j>=0;--j){ if(nc[j]){ if(dist(lx,0,pt[j].X,pt[j].Y)<=d){ nc[j]=0; --cnt; } } if(lx-pt[j].X>d)break; } } } cout<<cnt<<endl; }
ll automaton(string& s) { ll j = s.size(); for (int curstate = 0, i = 0, c = s[0] - 'a', f = 1; i < s.size(); curstate = states[curstate][c], c = s[++i] - 'a') if (states[curstate][c] == 0) f ? f = 0, j = i + 1 : f = 0, states[curstate][c] = states.size(), states.eb(empty); return j; }
int main(){ scanf("%d %d %d", &n, &q, &m); forn(i, n) scanf("%d", v+i); forn(i, q){ int a, b, c; scanf("%d %d %d", &a, &b, &c); t.eb(a, b, c); }
int assign(int &l, int r) { changes.eb(l,l); return l = r; }