// UVa 587 - There's treasure everywhere!
#include <iostream>
#include <stdio.h>
#include <string>
#include <math.h>
#include <map>
using namespace std;
#define pi M_PI
int main() {
map<string, double> angle;
angle["E"] = 0;
angle["NE"] = pi / 4;
angle["N"] = pi / 2;
angle["NW"] = 3 * pi / 4;
angle["W"] = pi;
angle["SW"] = 5 * pi / 4;
angle["S"] = 3 * pi / 2;
angle["SE"] = 7 * pi / 4;
string l;
int t = 0;
while (getline(cin, l) && l != "END") {
t++;
int d = 0;
string dir = "";
double x = 10e-12, y = 10e-12;
for (int i = 0; i < l.length(); i++) {
if (l[i] >= '0' && l[i] <= '9')
d = d * 10 + (l[i] - '0');
else if (l[i] == 'N' || l[i] == 'S' || l[i] == 'E' || l[i] == 'W')
dir = dir + l[i];
else {
x += d * cos(angle[dir]);
y += d * sin(angle[dir]);
d = 0;
dir = "";
}
}
printf("Map #%d\n", t);
printf("The treasure is located at (%.3f,%.3f).\n", x, y);
printf("The distance to the treasure is %.3f.\n\n", sqrt(x * x + y * y));
}
return 0;
}
Wednesday, June 10, 2015
UVa 587 - There's treasure everywhere!
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment