UVA

来源:互联网 发布:linux高级编程 编辑:程序博客网 时间:2024/06/06 01:17

题目大意:给 N 个点,输出最小距离。最小距离超过 10000 输出 INFINITY
解题思路:暴力QwQ

#include<iostream>#include<stdio.h>#include<algorithm>#include<cmath>#include<string.h>const int INF = 0x3f3f3f3f;const int NINF = -INF -1;using namespace std;struct point {    double x, y;};point poi[10010];double dis(point a, point b) {    return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));}int main() {    int n;    while (scanf("%d", &n) && n != 0) {        for (int i = 0; i < n; i++) {            scanf("%lf%lf", &poi[i].x, &poi[i].y);        }        double minn = INF;        for (int i = 0; i < n; i++)            for (int j = i+1; j < n; j++) {                double tmp = dis(poi[i], poi[j]);                if (tmp < minn) minn = tmp;            }        if (minn > 10000) printf("INFINITY\n");        else printf("%.4lf\n", minn);    }return 0;}