/** ex8-2.c 莠、蟾ョ轤ケ縺ョ繧ス繝シ繝�
 * 繧ュ繝シ繝懊�繝牙�蜉帙@縺溷コァ讓吶°繧芽ソ代>鬆�↓繝��繧ソ繧剃クヲ縺ウ螟峨∴縺ヲ逕サ髱「縺ォ蜃コ蜉帙☆繧九�繝ュ繧ー繝ゥ繝���
 */
#include <stdio.h>
#include <math.h>
#include <string.h>

#define CROSSING_SIZE 100       /* 莠、蟾ョ轤ケ謨ー=100 */
#define MAX_NAME_SIZE  50       /* 譛€螟ァ譁�ュ玲焚50譁�ュ�(蜊願ァ�) */

typedef struct {
    double x, y;                /* 菴咲スョ x, y */
} Position;                     /* 菴咲スョ繧定。ィ縺呎ァ矩€�菴� */

typedef struct {
    int id;                     /* 莠、蟾ョ轤ケ逡ェ蜿キ */
    Position pos;               /* 菴咲スョ繧定。ィ縺呎ァ矩€�菴� */
    double wait;                /* 蟷ウ蝮�セ�■譎る俣 */
    char jname[MAX_NAME_SIZE];  /* 莠、蟾ョ轤ケ蜷� */
    char ename[MAX_NAME_SIZE];  /* 莠、蟾ョ轤ケ蜷� */
    int points;                 /* 莠、蟾ョ驕楢キッ謨ー */
    int next[5];                /* 髫」謗・縺吶k莠、蟾ョ轤ケ逡ェ蜿キ */
} Crossing;

Crossing cross[CROSSING_SIZE];

int map_read(char *filename) {
    /* 繧オ繝シ繝√〒菴懊▲縺溘b縺ョ繧貞盾閠�↓縺励※荳九&縺� */
}

void print_cross(int i) {
    /* 繧オ繝シ繝√〒菴懊▲縺溘b縺ョ繧貞盾閠�↓縺励※荳九&縺� */
}

/* 縺薙%繧芽セコ縺九i蜈・蜉帙@縺ヲ縺上□縺輔> */

/* num蛟玖。ィ遉コ  = 陦ィ遉コ謨ー蛻カ髯仙庄閭ス */
void print_cross_list(int num) {
    int i;
    for (i = 0; i < num; i++)
        print_cross(i);
}

/* 繝舌ヶ繝ォ繧ス繝シ繝医�繝励Ο繧ー繝ゥ繝�繧貞�蜉帙@縺ヲ荳九&縺�シ壼�豌励′縺ゅk莠コ縺ッ莉悶�繧りゥヲ縺励※縺ソ縺セ縺励g縺� */
void bubble_sort(int num, double x0, double y0) {
    int i, j, lo, up;

    double d1, d2;  /* 霍晞屬繧定ィ育ョ励@縺セ縺� */
    Crossing temp;  /* 蜈・繧梧崛縺医�縺溘a縺ォ菴ソ縺」縺ヲ縺上□縺輔> */

    lo = 0;
    up = num - 1;
    while (up > lo) {
        j = lo;
        for (i = lo; i < up; i++) {
            d1 = /* 莠、蟾ョ轤ケ i 縺九i (x0,y0) 縺セ縺ァ縺ョ霍晞屬 */
            d2 = /* 莠、蟾ョ轤ケ i+1 縺九i (x0,y0) 縺セ縺ァ縺ョ霍晞屬 */
            if (d1>d2) {
                /* 騾���↑縺ョ縺ァ i 縺ィ i+1 繧貞�繧梧崛縺医∪縺励g縺� */
                /*  temp 繧剃スソ縺」縺ヲ縺上□縺輔> */
                temp = cross[i];  /* 蜈・繧梧崛縺育ャャ�第焔鬆� */
                /* 蜈・繧梧崛縺育ャャ�呈焔鬆� */
                /* 蜈・繧梧崛縺育ャャ�捺焔鬆� */
                j = i;
            }
        }
        up = j;
    }
}

int main(void) {
    int crossing_number;  /* 莠、蟾ョ轤ケ謨ー */
    double x, y;

    /* 繝輔ぃ繧、繝ォ縺ョ隱ュ縺ソ霎シ縺ソ */
    crossing_number = map_read("map2.dat");
    printf("loaded %d crossings\n", crossing_number);

    /* fprintf(stderr,... 縺ォ縺吶k縺ィ縲- more , | less 縺ェ縺ゥ縺ョ蠖ア髻ソ繧� */
    /*  蜿励¢縺ェ縺上↑繧翫∪縺� */
    fprintf(stderr, "蝓コ貅門コァ讓吶r蜈・蜉帙@縺ヲ縺上□縺輔> (%%lf %%lf 蠖「蠑�):\n");
    scanf("%lf %lf", &x, &y);
    bubble_sort(crossing_number, x, y);
    print_cross_list(crossing_number);

    return 0;
}