/* ex8-1.c:
 * 莠、蟾ョ轤ケ讀懃エ「�医Ο繝シ繝槫ュ励〒莠、蟾ョ轤ケ蜷阪r繧ュ繝シ繝懊�繝峨°繧牙�蜉帙@縺ヲ逕サ髱「縺ォ莠、蟾ョ轤ケ諠��ア繧貞�蜉帙☆繧九�繝ュ繧ー繝ゥ繝�
 */
#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) {

/* 縺吶〒縺ォ逕ィ諢上@縺ヲ縺ゅj縺セ縺吶�縺ァ
     * int map_read(char *filename) 縺ョ縺ソ
     * readfile.c 縺九i繧ウ繝斐�縺励※荳九&縺�
     */

}

void print_cross(int i) {  /* i 逡ェ逶ョ縺ョ莠、蟾ョ轤ケ 縺ョ陦ィ遉コ髢「謨ー 螂ス縺阪↓謾ケ騾�縺励※縺上□縺輔>*/
    int j;
    printf("莠、蟾ョ轤ケ逡ェ蜿キ:%2d, 蠎ァ讓�(%5.2lf,%5.2lf), 蜷榊燕: %s ( %s ),",
           cross[i].id, cross[i].pos.x, cross[i].pos.y,
           cross[i].jname,cross[i].ename);

    printf("\n               蠕�■譎る俣:%5.1lf, 髫」謗・莠、蟾ョ轤ケ :%d蛟� ( ",
           cross[i].wait, cross[i].points);

    /* 莠、蟾ョ驕楢キッ謨ー縺�縺醍ケー繧願ソ斐@ */
    for (j = 0; j < cross[i].points; j++)
        printf("%d ", cross[i].next[j]);

    printf(")\n\n");
}

/* 縺薙�霎コ繧翫°繧牙�蜉帙@縺ヲ縺�∪縺帙s */

int search_cross(int num) {  /* 螳悟�荳€閾エ繧オ繝シ繝√�繝励Ο繧ー繝ゥ繝�繧偵%縺ョ陦御サ・髯阪↓蜈・蜉帙@縺ヲ荳九&縺� */
    int i;
    int f = -1;
    char input[200];
    printf("莠、蟾ョ轤ケ蜷阪r蜈・蜉帙@縺ヲ縺上□縺輔>(繝ュ繝シ繝槫ュ�): ");
    scanf("%s", input);

    puts("");
    for (i = 0; i < num; i++) {

        /* i逡ェ逶ョ縺ョ莠、蟾ョ轤ケ蜷�(ename)縺ィ蜈・蜉帙@縺殃nput 縺御ク€閾エ縺励◆繧�: 閠�∴縺ヲ縺上□縺輔> */

        {
            print_cross(i);  /* 陦ィ遉コ */
            f = i;             /* 隕九▽縺代◆逡ェ蜿キ菫晄戟 */
        }
    }
    if (f < 0)
        printf("%s 縺ッ縺ソ縺、縺九j縺セ縺帙s縺ァ縺励◆\n", input);

    return f;  /* 隕九▽縺九▲縺ヲ縺�◆繧峨€√◎繧後r縲√↑縺代l縺ー -1 繧定ソ斐@縺セ縺� */
}

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

    /* 繝輔ぃ繧、繝ォ縺ョ隱ュ縺ソ霎シ縺ソ */
    crossing_number = map_read("map2.dat");

    printf("loaded %d crossings\n", crossing_number);

    search_cross(crossing_number);
    return 0;
}