mickypinata

PROG-T1016: Treasure

Sep 18th, 2021
641
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. const double sqrt2 = sqrt(2);
  5.  
  6. int main(){
  7.  
  8.     double x = 0;
  9.     double y = 0;
  10.     while(true){
  11.         string str;
  12.         cin >> str;
  13.         if(str[0] == '*'){
  14.             break;
  15.         }
  16.         int sz = str.size();
  17.         if(isalpha(str[sz - 2])){
  18.             int mv = stoi(str.substr(0, sz - 2));
  19.             if(str[sz - 2] == 'N'){
  20.                 y += (double)mv / sqrt2;
  21.             } else if(str[sz - 2] == 'S'){
  22.                 y -= (double)mv / sqrt2;
  23.             }
  24.             if(str[sz - 1] == 'E'){
  25.                 x += (double)mv / sqrt2;
  26.             } else if(str[sz - 1] == 'W'){
  27.                 x -= (double)mv / sqrt2;
  28.             }
  29.         } else {
  30.             int mv = stoi(str.substr(0, sz - 1));
  31.             if(str[sz - 1] == 'N'){
  32.                 y += mv;
  33.             } else if(str[sz - 1] == 'S'){
  34.                 y -= mv;
  35.             } else if(str[sz - 1] == 'E'){
  36.                 x += mv;
  37.             } else if(str[sz - 1] == 'W'){
  38.                 x -= mv;
  39.             }
  40.         }
  41.     }
  42.     printf("%.3f %.3f\n%.3f", x, y, sqrt(x * x + y * y));
  43.  
  44.     return 0;
  45. }
  46.  
RAW Paste Data