SuitNdtie

Treasure

Mar 31st, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.05 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<cmath>
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.     double X = 0,Y = 0;
  8.     char move[10];
  9.     int mi;
  10.     do{
  11.         mi = 0;
  12.         double val = 0;
  13.         scanf("%s",move);
  14.         while('0' <= move[mi] && move[mi] <= '9'){
  15.             val += move[mi++] - '0';
  16.             val*=10;
  17.         }val/=10;
  18.         if(move[mi] == '*')continue;
  19.         if(move[mi+1] == '\0'){
  20.             switch(move[mi]){
  21.                 case('N'):{
  22.                     Y += val;
  23.                     break;
  24.                 }
  25.                 case('S'):{
  26.                     Y -= val;
  27.                     break;
  28.                 }
  29.                 case('E'):{
  30.                     X += val;
  31.                     break;
  32.                 }
  33.                 case('W'):{
  34.                     X -= val;
  35.                     break;
  36.                 }
  37.             }  
  38.         }
  39.         else{
  40.             val = val/sqrt(2);
  41.             switch(move[mi] + move[mi+1]){
  42.                 case('N' + 'E'):{
  43.                     X += val;
  44.                     Y += val;
  45.                     break;
  46.                 }
  47.                 case('S' + 'E'):{
  48.                     Y -= val;
  49.                     X += val;
  50.                     break;
  51.                 }
  52.                 case('S' + 'W'):{
  53.                     Y -= val;
  54.                     X -= val;
  55.                     break;
  56.                 }
  57.                 case('N' + 'W'):{
  58.                     Y += val;
  59.                     X -= val;
  60.                     break;
  61.                 }
  62.             }
  63.         }
  64.     }while(move[mi] != '*');
  65.     printf("%.3f %.3f\n",X,Y);
  66.     printf("%.3f",sqrt((X*X)+(Y*Y)));
  67.     return 0;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment