给定3n个点,保证3点不共线,构造n个三角形,输出任一方案。
以x为第一关键字,y为第二关键字排序。然后3个3个的取就OK。
#include<cstdio>
#include<algorithm>
using namespace std;
int n, T;
struct hh{
int x, y, num;
bool operator < (const hh& p)const{
if (x == p.x){
return y < p.y;
} else return x < p.x;
}
}a[12000];
int main(){
scanf("%d", &T);
while(T--){
scanf("%d", &n);
for (int i = 1; i <= n * 3; i++)
scanf("%d%d", &a[i].x, &a[i].y), a[i].num = i;
sort(a + 1, a + n * 3 + 1);
for (int i = 1; i <= n * 3; i += 3){
printf("%d %d %d\n", a[i].num, a[i + 1].num, a[i + 2].num);
}
}
return 0;
}