1. 程式人生 > >Triangle Partition HDU

Triangle Partition HDU

  • 題意:給3*n個點組成n個三角形不相鄰,並且沒有三點共線,直接按照x大小排序相鄰選擇三個即可
  • #include<bits/stdc++.h>
    using namespace std;
    #define maxn 10050
    struct node
    {
        int x,y,id;
    } point[maxn];
    bool cmp(node a,node b)
    {
        if(a.x==b.x)return a.y<b.y;
        return a.x<b.x;
    }
    int t,n;
    int main()
    {
        scanf("%d",&t);
        while(t--)
        {
            scanf("%d",&n);
            for(int i=1; i<=3*n; i++)
            {
                scanf("%d%d",&point[i].x,&point[i].y);
                point[i].id=i;
            }
            sort(point+1,point+3*n+1,cmp);
            for(int i=1;i<=3*n;i+=3)
            printf("%d %d %d\n",point[i].id,point[i+1].id,point[i+2].id);
        }
        return 0;
    }