#include #define pb push_back #define All(a) (a).begin(),(a).end() #define Sz(a) ((int)(a).size()) #define pii pair #define f first #define s second #define INF (int)(1e18) #define MOD (int)(1e9+7) #define MAXN 500005 #define enl '\n' #define DB(CODE) cout<<'\t'< num[MAXN]; int root(int u){ return par[u]=(u==par[u])?u:root(par[u]); } void join(int u,int v){ if(sz[u]> n >> m >> q; int a[n]; for(int i=0; i> a[i]; vector> edge(m); for(auto &p: edge){ cin >> p.s.f >> p.s.s >> p.f; p.s.f--; p.s.s--; } sort(All(edge)); vector w={0}; vector> add(1); int i=0,j=0; while(i(0)); while(i qr(q); vector l(q,0),r(q,m-1); for(auto &p: qr) cin >> p.f >> p.s,p.f--; stack bin[m]; for(int i=0; i ans(q,m); while(done=qr[idx].s){ r[idx]=i-1; ans[idx]=i; } else l[idx]=i+1; if(l[idx]<=r[idx]) bin[(l[idx]+r[idx])/2].push(idx); else done++; } } } } for(int i=0; isync_with_stdio(false); int t=1; //cin >> t; while(t--){ testcase(); } return 0; } /* */