Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<cmath>
- using namespace std;
- int main()
- {
- double X = 0,Y = 0;
- char move[10];
- int mi;
- do{
- mi = 0;
- double val = 0;
- scanf("%s",move);
- while('0' <= move[mi] && move[mi] <= '9'){
- val += move[mi++] - '0';
- val*=10;
- }val/=10;
- if(move[mi] == '*')continue;
- if(move[mi+1] == '\0'){
- switch(move[mi]){
- case('N'):{
- Y += val;
- break;
- }
- case('S'):{
- Y -= val;
- break;
- }
- case('E'):{
- X += val;
- break;
- }
- case('W'):{
- X -= val;
- break;
- }
- }
- }
- else{
- val = val/sqrt(2);
- switch(move[mi] + move[mi+1]){
- case('N' + 'E'):{
- X += val;
- Y += val;
- break;
- }
- case('S' + 'E'):{
- Y -= val;
- X += val;
- break;
- }
- case('S' + 'W'):{
- Y -= val;
- X -= val;
- break;
- }
- case('N' + 'W'):{
- Y += val;
- X -= val;
- break;
- }
- }
- }
- }while(move[mi] != '*');
- printf("%.3f %.3f\n",X,Y);
- printf("%.3f",sqrt((X*X)+(Y*Y)));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment