题目链接:
http://acm.hdu.edu.cn/showproblem.php?pid=6300

题目分析:
利用结构体存储point,因为三个点不共线,只需要根据横坐标纵坐标进行升序排列,然后每个三组就行
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
typedef long long ll;
struct node{
ll x;
ll y;
int id;
}point[1001];
bool cmp(node a,node b)
{
if(a.x==b.x)
{
return a.y<b.y;
}
return a.x<b.x;
}
int main(void)
{
int T,n;
cin>>T;
while(T--)
{
cin>>n;
for(int i = 0; i < 3*n; i++)
{
cin>>point[i].x>>point[i].y;
point[i].id = i+1;
}
sort(point,point+3*n,cmp);
for(int i=0;i<n;i++)
{
printf("%d %d %d\n",point[i*3].id,point[i*3+1].id,point[i*3+2].id);
}
}
return 0;
}
286

被折叠的 条评论
为什么被折叠?



