正常应该是 分治的做法
这里可以直接爆过
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string>
#include <cmath>
#include <set>
#include <map>
#include <stack>
#include <queue>
#include <ctype.h>
#include <vector>
#include <algorithm>
#include <sstream>
#define PI acos(-1.0)
// cout << " === " << endl;
using namespace std;
typedef long long ll;
const int maxn = 10000 + 7, INF = 0x3f3f3f3f, mod = 1e9+7;
int n;
struct node {
double x, y;
}a[maxn];
void init() {
for(int i = 0; i < n; ++i) {
scanf("%lf%lf", &a[i].x, &a[i].y);
}
}
double pp(int i, int j) {
return sqrt( fabs( fabs(a[i].x-a[j].x)*fabs(a[i].x-a[j].x) + fabs(a[i].y-a[j].y)*fabs(a[i].y-a[j].y) ));
}
int main() {
while(scanf("%d", &n) && n) {
init();
double ans = (double)INF;
for(int i = 0; i < n-1; ++i) {
for(int j = i+1; j < n; ++j) {
ans = min(ans, pp(i, j));
}
}
if(ans >= 10000.0) puts("INFINITY");
else {
printf("%.4lf\n", ans);
}
}
return 0;
}