| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
好吧,我认了,谁来看一下。。。//pku2354 Titanic
#include "iostream"
#include "cmath"
#include "algorithm"
using namespace std;
#define Pi acos(-1.0)
//计算球面两点圆心角
double angle(double lng1,double lat1,double lng2,double lat2)
{
double dlng=fabs(lng1-lng2);
while(dlng>=360)
dlng-=360;
if(dlng>180)
dlng=360-dlng;
dlng=dlng*Pi/180.0;
lat1=lat1*Pi/180,lat2=lat2*Pi/180;
return acos(cos(lat1)*cos(lat2)*cos(dlng)+sin(lat1)*sin(lat2));
}
int main()
{
//freopen("in.txt", "r", stdin);
char line[400];
//while(fgets(line, 400, stdin)!=0)
while(scanf("%s", line) && line[0]=='M')
{
if(line[0]!='M') continue;
int d, f, m;
char ch[100];
//fgets(line, 400, stdin);
//fgets(line, 400, stdin);
//fgets(line, 400, stdin);
//sscanf(line, "%d^%d'%d\" %c", &d, &f, &m, &ch[0]);
gets(line);
gets(line);
gets(line);
scanf("%d^%d'%d\" %s", &d, &f, &m, ch);
double bnl=d*3600.0+f*60.0+m;
if(ch[0]=='S')
bnl=-bnl;
//fgets(line, 400, stdin);
//sscanf(line, "%s%d^%d'%d\" %c", ch, &d, &f, &m, &ch[0]);
gets(line);
scanf("and %d^%d'%d\" %s", &d, &f, &m, ch);
double bwl=d*3600.0+f*60.0+m;
if(ch[0]=='W')
bwl=-bwl;
//fgets(line, 400, stdin);
//fgets(line, 400, stdin);
//sscanf(line, "%d^%d'%d\" %c", &d, &f, &m, &ch[0]);
gets(line);
gets(line);
scanf("%d^%d'%d\" %s", &d, &f, &m, ch);
double inl=d*3600.0+f*60.0+m;
if(ch[0]=='S')
inl=-inl;
//fgets(line, 400, stdin);
//sscanf(line, "%s%d^%d'%d\" %c", ch, &d, &f, &m, &ch[0]);
gets(line);
scanf("and %d^%d'%d\" %s", &d, &f, &m, ch);
double iwl=d*3600.0+f*60.0+m;
if(ch[0]=='W')
iwl=-iwl;
double dis=6875.0/2.0*angle(bwl/3600.0, bnl/3600.0, iwl/3600.0, inl/3600.0);
dis=floor(dis*100)*0.01;
printf("The distance to the iceberg: %.2lf miles.\n", dis);
if(dis<100.0)
printf("DANGER!\n");
}
return 0;
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator