Triangle PartitionTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 132768/132768 K (Java/Others)Total Submission(s): 1356 Accepted Submission(s): 682 Special Judge Problem Description Chiaki has 3n points p1,p2,…,p3n. It is guaranteed that no three points are collinear.
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:
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
Source |
题意:
就是给你一堆点,然后问你最多能组成多少个三角形.
题解:
很简单,按照点的x轴排个序就好了。
代码:
#include<bits/stdc++.h>
using namespace std;
struct tr{
int x,y,num;
};
int cmp(tr a,tr b){
if(a.x > b.x) {
return false;
} else if(a.x == b.x) {
if(a.y > b.y) {
return false;
} else {
return true;
}
} else {
return true;
}
}
int main() {
tr a[99999];
int _,n;
for(scanf("%d",&_);_;_--){
scanf("%d",&n);
for(int i = 0; i < 3*n;i++){
scanf("%d %d",&a[i].x,&a[i].y);
a[i].num = i+1;
}
sort(a,a+(3*n),cmp);
for(int i = 0;i < 3*n;i++){
printf("%d ",a[i].num);
}
puts("");
}
}