// UVa 10357 - Playball !!!
#include <iostream>
#include <math.h>
#include <stdio.h>
#include <string>
using namespace std;
struct tplayer {
double x, y, v;
};
struct tball {
double a, b, c, d, e, f, g;
};
int main() {
for (int i = 0; i < 8; i++)
char dummy = getchar();
int n;
cin >> n;
tplayer player[20];
for (int i = 0; i < n; i++)
cin >> player[i].x >> player[i].y >> player[i].v;
string line;
getline(cin, line);
for (int i = 0; i < 6; i++)
char dummy = getchar();
int m;
cin >> m;
for (int j = 1; j <= m; j++) {
double a, b, c, d, e, f, g;
cin >> a >> b >> c >> d >> e >> f >> g;
double D = b * b - 4 * a * c;
double t1 = -(b + sqrt(D)) / (2 * a);
double t2 = -(b - sqrt(D)) / (2 * a);
double t = (t2 <= 0 || 0 < t1 && t1 < t2) ? t1 : t2;
t = ceil(t);
double x = d * t + e;
double y = f * t + g;
string outcome;
if (x < 0 || y < 0)
outcome = "foul";
else {
outcome = "safe";
for (int i = 0; i < n; i++) {
if (sqrt((x - player[i].x) * (x - player[i].x) + (y - player[i].y) * (y - player[i].y)) / player[i].v <= t) {
outcome = "caught";
break;
}
}
}
printf("Ball %d was %s at (%.0f,%.0f)\n", j, outcome.c_str(), x, y);
}
return 0;
}
Wednesday, May 13, 2015
UVa 10357 - Playball !!!
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment