链接:https://ac.nowcoder.com/acm/contest/327/A
中文题一概不解释题意
本题重点:三角形面积公式:设A(x1,y1),B(x2,y2),C(x3,y3) S=(1/2)*(x1y2+x2y3+x3y1-x1y3-x2y1-x3y2)
精度大要用long double
c++ STL函数nth_element(a,a+k-1,a+a.size()) 将数组种第k大的数放在a[k-1]中
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
typedef long double ld;
const int MAX = 1e6;
struct node{
ld x,y;
}a[MAX];
ld num[MAX];
bool cmp(ld a,ld b){
return a>b;
}
int main(){
int t,n,k,cnt,ans;
cin>>t;
while(t--){
cin>>n>>k;
for(int i = 0;i<n;++i)
cin>>a[i].x>>a[i].y;
cnt = 0;
for(int i = 0;i<n;++i){
for(int j = i+1;j<n;++j){
for(int k = j+1;k<n;++k){
num[cnt++] = 0.5*abs(a[i].x*a[j].y+a[j].x*a[k].y+a[k].x*a[i].y-a[i].x*a[k].y-a[j].x*a[i].y-a[k].x*a[j].y);
}
}
}
nth_element(num,num+k-1,num+cnt,cmp);
printf("%.2Lf\n",num[k-1]);
}
return 0;
}