Submission #19007479
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
bool is_feasible(int N, int M, double r, vector<double> &r_vec,
const vector<vector<double>> &dist)
{
for (int i = N; i < N + M; ++i)
r_vec.at(i) = r;
for (int i = 0; i < N + M; ++i) {
for (int j = i + 1; j < N + M; ++j) {
if (r_vec.at(i) + r_vec.at(j) > dist[i][j])
return false;
}
}
return true;
}
int main()
{
static const double inf = 1e+5;
int N, M;
cin >> N >> M;
vector<int> x_vec(N + M), y_vec(N + M);
vector<double> r_vec(N + M, inf);
for (int i = 0; i < N; ++i)
cin >> x_vec.at(i) >> y_vec.at(i) >> r_vec.at(i);
for (int i = N; i < N + M; ++i)
cin >> x_vec.at(i) >> y_vec.at(i);
vector<vector<double>> dist(N + M, vector<double>(N + M, inf));
for (int i = 0; i < N + M; ++i) {
for (int j = i + 1; j < N + M; ++j) {
int dx = x_vec.at(i) - x_vec.at(j);
int dy = y_vec.at(i) - y_vec.at(j);
dist[i][j] = hypot(dx, dy);
}
}
double ok = 0;
double ng = *min_element(r_vec.begin(), r_vec.end()) + 1e-6;
while (abs(ok - ng) > 1e-6) {
double mid = (ok + ng) / 2;
if (is_feasible(N, M, mid, r_vec, dist))
ok = mid;
else
ng = mid;
}
cout << setprecision(10) << ok << endl;
}
Submission Info
| Submission Time | |
|---|---|
| Task | B - Emblem |
| User | atug |
| Language | C++ (GCC 9.2.1) |
| Score | 300 |
| Code Size | 1373 Byte |
| Status | AC |
| Exec Time | 5 ms |
| Memory | 3920 KiB |
Judge Result
| Set Name | Sample | Subtask1 | Subtask2 | Subtask3 | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 70 / 70 | 140 / 140 | 90 / 90 | ||||||||
| Status |
|
|
|
|
| Set Name | Test Cases |
|---|---|
| Sample | sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt |
| Subtask1 | sample_01.txt, sub1_in01.txt, sub1_in02.txt |
| Subtask2 | sample_01.txt, sample_02.txt, sub1_in01.txt, sub1_in02.txt, sub2_in01.txt, sub2_in02.txt, sub2_in03.txt, sub2_in04.txt |
| Subtask3 | sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, sub1_in01.txt, sub1_in02.txt, sub2_in01.txt, sub2_in02.txt, sub2_in03.txt, sub2_in04.txt, sub3_in01.txt, sub3_in02.txt, sub3_in03.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| sample_01.txt | AC | 5 ms | 3644 KiB |
| sample_02.txt | AC | 2 ms | 3544 KiB |
| sample_03.txt | AC | 2 ms | 3616 KiB |
| sample_04.txt | AC | 2 ms | 3584 KiB |
| sub1_in01.txt | AC | 2 ms | 3724 KiB |
| sub1_in02.txt | AC | 2 ms | 3540 KiB |
| sub2_in01.txt | AC | 2 ms | 3572 KiB |
| sub2_in02.txt | AC | 2 ms | 3792 KiB |
| sub2_in03.txt | AC | 2 ms | 3640 KiB |
| sub2_in04.txt | AC | 2 ms | 3768 KiB |
| sub3_in01.txt | AC | 5 ms | 3876 KiB |
| sub3_in02.txt | AC | 4 ms | 3920 KiB |
| sub3_in03.txt | AC | 3 ms | 3912 KiB |