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;
    	}
Exemple #2
0
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;
}
Exemple #3
0
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];
}
Exemple #4
0
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;
}
Exemple #5
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;
    }