📄 2799661_ac_15ms_96k.c
字号:
#include <stdio.h>
#include <string.h>
#include <math.h>
#define PI 3.141592653589793
#define R 6378.0
struct node
{
double a, b;
char name[31];
}city[101];
int n;
int get_id(char str[])
{
int i;
for(i = 0; i < n; i++)
if(strcmp(str,city[i].name)==0)
return i;
return -1;
}
int main()
{
char a[31], b[31];
int l, r;
double a1, b1, c1, d1, D;
n = 0;
while(scanf("%s",city[n].name)==1)
{
if(city[n].name[0]=='#')
break;
scanf("%lf%lf",&city[n].a,&city[n].b);
n++;
}
while(scanf("%s%s",a,b)==2)
{
if(a[0]=='#')
break;
printf("%s - %s\n",a,b);
l = get_id(a);
r = get_id(b);
if(l==-1||r==-1)
{
puts("Unknown");
printf("\n");
continue;
}
a1 = city[l].a*PI/180;
b1 = city[l].b*PI/180;
c1 = city[r].a*PI/180;
d1 = city[r].b*PI/180;
D = acos(sin(a1)*sin(c1)+(cos(a1)*cos(c1)*cos(fabs(b1-d1))))*R;
printf("%.0lf km\n\n",D);
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -