hdu 4709

来源:互联网 发布:刘德华 人物评价 知乎 编辑:程序博客网 时间:2024/05/19 12:23

求三角形的面积

利用向量点乘得到三角形的面积

三个for循环嵌套即可


#include<iostream>#include<cstdio>#include<cstring>#include<vector>using namespace std;const double INF = 1e9+50;double x[1000];double y[1000];double area(int i, int j, int k){double ax = x[i] - x[j];double ay = y[i] - y[j];double bx = x[k] - x[j];double by = y[k] - y[j];double ans = (ax*by - ay*bx)/2;if(ans < 0) return -ans;return ans;}int main(){int T, N;double a, b, Min;scanf("%d", &T);while(T --){Min = INF;scanf("%d", &N);for(int i = 0; i < N; i ++){scanf("%lf%lf", &a, &b);x[i] = a;y[i] = b;}for(int i = 0; i < N; i ++)for(int j = i+1; j < N; j ++)for(int k = j+1; k < N; k ++){double s = area(i, j, k);if(s < Min && s != 0.0) Min = s; }if(Min != INF){printf("%.2lf\n", Min);}else{printf("Impossible\n");}}return 0;} 


0 0