Last active
June 13, 2019 08:44
-
-
Save kei9327/b0d7c26b063a97b4a9da87b1fa5970e7 to your computer and use it in GitHub Desktop.
HackerRank>Algorithm>implementation>kangaroo
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <bits/stdc++.h> | |
using namespace std; | |
vector<string> split_string(string); | |
// Complete the kangaroo function below. | |
string kangaroo(int x1, int v1, int x2, int v2) { | |
if (v2 >= v1) { | |
return "NO"; | |
} | |
double num = (double)(x2 - x1) / (v1 - v2); | |
if (num - (int)num == 0) { | |
return "YES"; | |
} | |
return "NO"; | |
} | |
int main() | |
{ | |
ofstream fout(getenv("OUTPUT_PATH")); | |
string x1V1X2V2_temp; | |
getline(cin, x1V1X2V2_temp); | |
vector<string> x1V1X2V2 = split_string(x1V1X2V2_temp); | |
int x1 = stoi(x1V1X2V2[0]); | |
int v1 = stoi(x1V1X2V2[1]); | |
int x2 = stoi(x1V1X2V2[2]); | |
int v2 = stoi(x1V1X2V2[3]); | |
string result = kangaroo(x1, v1, x2, v2); | |
fout << result << "\n"; | |
fout.close(); | |
return 0; | |
} | |
vector<string> split_string(string input_string) { | |
string::iterator new_end = unique(input_string.begin(), input_string.end(), [] (const char &x, const char &y) { | |
return x == y and x == ' '; | |
}); | |
input_string.erase(new_end, input_string.end()); | |
while (input_string[input_string.length() - 1] == ' ') { | |
input_string.pop_back(); | |
} | |
vector<string> splits; | |
char delimiter = ' '; | |
size_t i = 0; | |
size_t pos = input_string.find(delimiter); | |
while (pos != string::npos) { | |
splits.push_back(input_string.substr(i, pos - i)); | |
i = pos + 1; | |
pos = input_string.find(delimiter, i); | |
} | |
splits.push_back(input_string.substr(i, min(pos, input_string.length()) - i + 1)); | |
return splits; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment