2018杭电多校赛第一场1003Triangle Partition

Triangle Partition

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 132768/132768 K (Java/Others)
Total Submission(s): 0    Accepted Submission(s): 0
Special Judge

Problem Description

Chiaki has 3n points p1,p2,…,p3n . It is guaranteed that no three points are collinear.
Chiaki would like to construct n disjoint triangles where each vertex comes from the 3n points.

Input

There are multiple test cases. The first line of input contains an integer T , indicating the number of test cases. For each test case:
The first line contains an integer n (1≤n≤1000 ) -- the number of triangle to construct.
Each of the next 3n lines contains two integers xi and yi (−109≤xi,yi≤109 ).
It is guaranteed that the sum of all n does not exceed 10000 .

Output

For each test case, output n lines contain three integers ai,bi,ci (1≤ai,bi,ci≤3n ) each denoting the indices of points the i -th triangle use. If there are multiple solutions, you can output any of them.

Sample Input

 

1

1

1 2

2 3

3 5

Sample Output

 

1 2 3

#include <iostream>
#include<algorithm>
using namespace std;
struct Node 
{
    int x;
    int y;
    int num;
}node[3010];
bool cmp(const Node &a,const Node &b)
{
        return a.x<b.x;
}
int main()
{
    int T,n;
    int i;
    int cnt=0;
    scanf("%d",&T);
    
    while(T--)
    {
        scanf("%d",&n);
        for(i=1;i<=3*n;i++)
        {
            scanf("%d%d",&node[i].x,&node[i].y);
            node[i].num=i;
        }
        sort(node+1,node+3*n+1,cmp);
        for(i=1;i<=3*n;i++)
        {
            if(i%3==0)
                printf("%d",node[i].num);
            else
                printf("%d ",node[i].num);
            if(i%3==0)
                printf("\n");
        }
        
    }
    return 0;
}
/*
2
2
1 2
2 3
3 5
1 4
7 8
6 0


*/

猜你喜欢

转载自blog.csdn.net/DOVIS233/article/details/81174991