int main() { #ifndef ONLINE_JUDGE freopen("in.txt", "r", stdin); #endif int xa,ya,xb,yb; cin>>xa>>ya>>xb>>yb; for(int i=min(xa,xb);i<=max(xa,xb);i++) { for(int j=min(ya,yb);j<=max(ya,yb);j++) { if(i==xa|| i==xb || j==ya|| j==yb) v.pb(pp(i,j)); } } //cout<<v.size()<<endl; v.erase(unique(v.begin(),v.end()),v.end()); int c=0; int n;s(n); rep(i,n) { int x,y,r; s(x);s(y);s(r); ar1[i]=x;ar2[i]=y;ar3[i]=r; }
VP ConvexHull(VP ps) { int n = ps.size(); int k = 0; sort(ps.begin(), ps.end()); VP ch(2 * n); for (int i = 0; i < n; ch[k++] = ps[i++]) while (k >= 2 && ccw(ch[k - 2], ch[k - 1], ps[i]) <= 0) --k; for (int i = n - 2, t = k + 1; i >= 0; ch[k++] = ps[i--]) while (k >= t && ccw(ch[k - 2], ch[k - 1], ps[i]) <= 0) --k; ch.resize(k - 1); return ch; }
int calcPos(VI &data,VVI &g,int node) { int ret=-1; VI wc(n , 0); VI pos(n , -1); int curNode = data[n-1]; for(int i = sz(data)-2 ; i>=0 ; i--) { if(g[curNode][data[i]]) { wc[curNode]++; } else { wc[data[i]]++; curNode = data[i]; } } for(int i = 0 ; i<n ; i++) cout<<i <<" wc "<<wc[i]<<endl; pos[curNode] = 1; VP slist; int idx = 2; for(int i = 0 ; i<n ; i++) { if(i==curNode) continue; slist.push_back({ wc[i] , i }); } sort(slist.begin() , slist.end()); for(int i = sz(slist)-1 ; i>=0 ; i--) { if(i==(sz(slist)-1) || (slist[i].x!=slist[i+1].x)) pos[slist[i].y] = idx++; else pos[slist[i].y] = pos[slist[i+1].y]; } for(int i = 0 ; i<n ; i++) { cout<<i<<" pos "<<pos[i]<<endl; } return pos[node]; }
int main() { int tcase,cas=1; cin>>tcase; while(tcase--) { cin>>n; VVI g(n , VI(n , 0)); for(auto &x: g) for(auto &y: x) cin>> y; VP slist; for(int i = 0 ; i<n ; i++) { int cnt = 0; for(int j =0 ; j<n ; j++) cnt+= g[i][j]; slist.push_back({cnt , i}); } sort(slist.begin() , slist.end()); VP sol; for(int i = 0 ; i<n ; i++) { int mx = posMax(g , slist , i); int mn = posMin(g , slist , i); cout<<i<<" "<<mx<<" "<<mn<<endl; } } return 0; }
VP solve(VP ps) { int n = ps.size(), k = 0; if (n <= 1) { return ps; } sort(ps.begin(), ps.end(), cmp()); VP qs(n * 2); for (int i = 0; i < n; qs[k++] = ps[i++]) { while(k > 1 && (qs[k - 1] - qs[k - 2]).det(ps[i] - qs[k - 1]) < eps) { k--; } } for (int i = n - 2, t = k; i >= 0; qs[k++] = ps[i--]) { while (k > t && (qs[k - 1] - qs[k - 2]).det(ps[i] - qs[k - 1]) < eps) { k--; } } qs.resize(k - 1); return qs; }