// UVa 10947 - Bear with me, again..
#include <iostream>
#include <string.h>
#include <queue>
#include <math.h>
using namespace std;
struct circle {
int x, y, r;
};
double dist(circle a, circle b) {
return sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y)) - a.r
- b.r;
}
int main() {
int k, m;
while (cin >> k >> m) {
circle l, fin;
cin >> l.x >> l.y >> l.r;
cin >> fin.x >> fin.y >> fin.r;
int n;
cin >> n;
circle c[200];
for (int i = 0; i < n; i++) {
cin >> c[i].x >> c[i].y >> c[i].r;
}
c[n++] = fin;
queue<circle> q;
q.push(l);
bool taken[200];
memset(taken, false, sizeof(taken));
while (!q.empty()) {
circle f = q.front();
q.pop();
for (int i = 0; i < n; i++)
if (!taken[i] && dist(f, c[i]) <= k * m) {
taken[i] = true;
q.push(c[i]);
}
}
if (taken[n - 1])
cout << "Larry and Ryan will escape!\n";
else
cout << "Larry and Ryan will be eaten to death.\n";
}
return 0;
}
Friday, October 30, 2015
UVa 10947 - Bear with me, again..
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment