#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
struct point
{
double x;
double y;
} *points;
int main (int argc, char *argv[])
{
points
= calloc(n
, sizeof(struct point
));
for (int i=0; i<n; ++i){
points
[i
].
x = rand() / (double) RAND_MAX
; points
[i
].
y = rand() / (double) RAND_MAX
; }
double maxlen = INFINITY;
int p1,p2;
for (int i=0; i<n-1; ++i){
for (int j=i+1; j<n; ++j){
double dx = points[j].x - points[i].x;
double dy = points[j].y - points[i].y;
double len
= sqrt(dx
*dx
+ dy
*dy
); if (len < maxlen){
maxlen = len;
p1 = i;
p2 = j;
}
}
}
for (int i=0; i<n; ++i){
printf("%d (%f, %f) %c \n", i
, points
[i
].
x, points
[i
].
y, ((i
==p1
) || (i
==p2
)) ? '*' : ' '); }
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KI2luY2x1ZGUgPHRpbWUuaD4KI2luY2x1ZGUgPG1hdGguaD4KCnN0cnVjdCBwb2ludAp7CiAgICBkb3VibGUgeDsKICAgIGRvdWJsZSB5Owp9ICpwb2ludHM7CgppbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKewogICAgaW50IG4gPSBhdG9pKGFyZ3ZbMV0pOyAgICAKICAgIHBvaW50cyA9IGNhbGxvYyhuLCBzaXplb2Yoc3RydWN0IHBvaW50KSk7ICAgIAogICAgc3JhbmQoKHVuc2lnbmVkKSB0aW1lKE5VTEwpKTsKICAgIAogICAgZm9yIChpbnQgaT0wOyBpPG47ICsraSl7ICAgICAgICAKICAgICAgICBwb2ludHNbaV0ueCA9IHJhbmQoKSAvIChkb3VibGUpIFJBTkRfTUFYOwogICAgICAgIHBvaW50c1tpXS55ID0gcmFuZCgpIC8gKGRvdWJsZSkgUkFORF9NQVg7ICAgICAgICAKICAgIH0KICAgIAogICAgZG91YmxlIG1heGxlbiA9IElORklOSVRZOwogICAgaW50IHAxLHAyOwogICAgCiAgICBmb3IgKGludCBpPTA7IGk8bi0xOyArK2kpewogICAgICAgIGZvciAoaW50IGo9aSsxOyBqPG47ICsrail7ICAgICAgICAgICAgCiAgICAgICAgICAgIGRvdWJsZSBkeCA9IHBvaW50c1tqXS54IC0gcG9pbnRzW2ldLng7CiAgICAgICAgICAgIGRvdWJsZSBkeSA9IHBvaW50c1tqXS55IC0gcG9pbnRzW2ldLnk7ICAgICAgICAgICAgCiAgICAgICAgICAgIGRvdWJsZSBsZW4gPSBzcXJ0KGR4KmR4ICsgZHkqZHkpOwogICAgICAgICAgICBpZiAobGVuIDwgbWF4bGVuKXsKICAgICAgICAgICAgICAgIG1heGxlbiA9IGxlbjsKICAgICAgICAgICAgICAgIHAxID0gaTsKICAgICAgICAgICAgICAgIHAyID0gajsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIAogICAgZm9yIChpbnQgaT0wOyBpPG47ICsraSl7ICAgICAgICAKICAgICAgICBwcmludGYoIiVkICglZiwgJWYpICVjIFxuIiwgaSwgcG9pbnRzW2ldLngsIHBvaW50c1tpXS55LCAoKGk9PXAxKSB8fCAoaT09cDIpKSA/ICcqJyA6ICcgJyk7CiAgICB9ICAgIAogICAgCiAgICBmcmVlKHBvaW50cyk7ICAgIAogICAgcmV0dXJuIDA7Cn0=