Question: Give a vertex (x, y), give some step delta1, delta2... deltan: Can I reach the (x, y) point after completing n steps in strict accordance with the step (0, 0.
Solution: in fact, it is to determine whether these line segments and (0, 0)-(x, y) can constitute a multilateral (angle ?) You only need to judge whether the longest side is less than half of the length of all sides.
Code:
#include <iostream>#include <cstdio>#include <cstring>#include <cstdlib>#include <cmath>#include <algorithm>using namespace std;class Jumping{public: string ableToGet(int x, int y, vector <int> jumpLengths) { double dis = sqrt(x*x+y*y); double sum = dis,maxi = dis; for(int i=0;i<jumpLengths.size();i++) { sum += (double)jumpLengths[i]; maxi = max(maxi,(double)jumpLengths[i]); } if(sum-maxi >= maxi) return "Able"; return "Not able"; }};
View code
Topcoder SRM 633 div.2 500 jumping