D - Triangle Partition HDU - 6300
题解
由于三点不共线,且三角形不相交,则对坐标排序,输出
#include<bits/stdc++.h>
using namespace std;
struct node {
int x;
int y;
int id;
};
bool cmp(node a, node b){
if(a.x == b.x) return a.y < b.y;
else return a.x < b.x;
}
int main(){
freopen("test.in", "r", stdin);
int T, n;
cin >> T;
while(T--) {
node point[1005];
cin >> n;
for(int i = 1; i <= 3*n; i++) {
cin >> 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++) {
if(i%3==0) cout << point[i].id << endl;
else cout << point[i].id << " ";
}
}
return 0;
}