Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <math.h>
- #include <stdlib.h>
- #define EPS 1e-6
- typedef struct
- {
- double x;
- double y;
- double R;
- int state;
- } point;
- void init (point *, int);
- double distance (point * pa, point * pb);
- int main()
- {
- point * p;
- int size;
- double d;
- double MIN;
- int ind, ind2;
- int i, j, k;
- double a;
- FILE * f = fopen ("input.txt","r");
- for (size = 0; fscanf (f,"%lf", &a) == 1 ; ++size);
- if (size % 2 != 0)
- {
- printf ("Incorrect data\n");
- return -1;
- }
- size /= 2;
- if (size == 1)
- {
- printf ("Incorrect data\n");
- return -1;
- }
- rewind (f);
- point = p[size];
- for (i = 0; i < size; ++i)
- {
- fscanf (f, "%lf %lf", &p[i].x, &p[i].y);
- }
- fclose (f);
- init (p, size);
- /*MIN = sqrt (pow (buble[0].x - buble[1].x, 2) + pow (buble[0].y - buble[1].y, 2)) / 2;
- printf ("1st distance = %lf\n", MIN);*/
- for (k = 0; k < size; ++k)
- {
- MIN = 0;
- for (i = 0; i < size ; ++i)
- {
- if (p[i].status == 1)
- {
- for (j = 0; j < size; ++j)
- {
- if (i != j)
- {
- d = distance(p[i], p[j]);
- if (buble[j].status == 0)
- {
- d = d - p[j].R;
- }
- else
- {
- d /= 2;
- }
- if (MIN == 0)
- {
- MIN = d;
- ind = i;
- }
- else if (d < MIN)
- {
- MIN = d;
- ind = i;
- ind2 = j; // mojno dobavit index j i potom buble[j].status = 0
- }
- //printf ("rassto9nie ot i%d do j%d minimalno i = %lf\n",i, j, MIN);
- }
- }
- }
- }//
- p[ind].R = MIN;
- p[ind].status = 0;
- if (p[ind2].status == 1)
- {
- p[ind2].R = MIN;
- p[ind2].status = 0;
- }
- }//
- for (int i = 0; i < size; ++i){
- printf ("X%d (%lf, %lf) R = %lf\n", i, p[i].x, p[i].y, p[i].R);
- }
- delete [] p;
- return 0;
- }
- void init (Buble *buble, int size)
- {
- for (int i = 0; i < size; ++i)
- {
- buble[i].R = 0;
- buble[i].status = 1;
- }
- }
- double distance (point * pa, point * pb)
- {
- double dx = pa->x - pb->x;
- double dy = pa->y - pb->y;
- return sqrt(dx*dx + dy*dy);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement