#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[])
{
    int n = atoi(argv[1]);    
    points = calloc(n, sizeof(struct point));    
    srand((unsigned) time(NULL));
    
    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)) ? '*' : ' ');
    }    
    
    free(points);    
    return 0;
}