Submission #10467423
Source Code Expand
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define nl '\n'
#define deb(x) cerr<<#x" = "<<x<<nl
#define in() ( { int a ; scanf("%d", &a); a; } )
//#define double long double
const int N = 70;
const int mod = 1e9 + 7;
const double eps = 1e-9;
inline ll sqr(int x){return x*x;}
struct PT
{
int x,y;
PT() {}
};
ll dist(PT a,PT b)
{
return sqr(a.x-b.x)+sqr(a.y-b.y);
}
//5 - outside and do not intersect
//4 - intersect outside in one point
//3 - intersect in 2 points
//2 - intersect inside in one point
//1 - inside and do not intersect
int circle_circle_relation(PT a, int ci, PT b, int cj, double x)
{
ll d=dist(a,b) * ci * ci * cj * cj;
double q = x * (ci + cj);
q *= q;
if(fabs(d * 1.0 - q) < eps) return 1;
if(d * 1.0 > q) return 5;
return 1;
}
///cliques are subsets of vertices, all adjacent to each other, also called complete subgraphs
///maximum clique is a clique with the largest possible number of vertices
///Complexity (3^(n/3)) , where n is the number of nodes
int g[70][70];
///for each i every nodes j!=i must need to be set 1 if
///there is any edge between i and j
///1-indexed
int res;
long long edges[70];
void BronKerbosch(int n, long long R, long long P, long long X) {
if (P == 0LL && X == 0LL) {
int t = 0;
for (int i = 0; i < n; i++) if ((1ll << i) & R) t ++;
res = max(res, t);
return;
}
long long u = 0;
while (!((1ll<<u) & (P|X))) u ++;
for (int v = 0; v < n; v++) {
if (((1ll << v) & P) && !((1ll << v) & edges[u])) {
BronKerbosch(n, R | (1ll << v), P & edges[v], X & edges[v]);
P -= (1ll << v);
X |= (1ll << v);
}
}
}
int max_clique (int n) {
res = 0;
for(int i = 0; i <= n; i++) edges[i] = 0;
for (int i = 1; i <= n; i++) {
edges[i] = 0;
for (int j = 1; j <= n; j++) if (g[i][j]) edges[i - 1] |= ( 1ll << (j - 1) );
}
BronKerbosch(n, 0, (1ll << n) - 1, 0);
return res;
}
int c[N];
PT p[N];
int yo(double x, int n)
{
for(int i = 0; i <= n; i++) for(int j = 0; j <= n; j++) g[i][j] = 0;
for(int i = 1; i <= n; i++) for(int j = 1; j <= n; j++){
if(circle_circle_relation(p[i], c[i], p[j], c[j], x) != 5) g[i][j] = 1;
}
for(int i =1 ; i <= n; i++) g[i][i] = 0;
return max_clique(n);
}
int32_t main()
{
int n, k; cin >> n >> k;
if(k == 1){
cout << fixed << setprecision(10) << 0.0 << nl;
}
for(int i = 1; i <= n; i++){
int a, b, x; cin >> a >> b >> x; p[i]. x= a, p[i]. y = b; c[i] = x;
}
auto it = 5000;
double l = 0.0, r = 1.0e9;
while(it--){
double mid = (l + r) * 0.5;
if(yo(mid, n) >= k) r = mid;
else l = mid;
}
cout << fixed << setprecision(10) << l << nl;
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | F - Yakiniku Optimization Problem |
| User | YouKn0wWho |
| Language | C++14 (GCC 5.4.1) |
| Score | 0 |
| Code Size | 2936 Byte |
| Status | WA |
| Exec Time | 1887 ms |
| Memory | 384 KiB |
Judge Result
| Set Name | Sample | All | ||||||
|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 0 / 600 | ||||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00-sample-00, 00-sample-01 |
| All | 00-sample-00, 00-sample-01, 01-handmade-00, 01-handmade-01, 01-handmade-02, 01-handmade-03, 01-handmade-04, 01-handmade-05, 01-handmade-06, 01-handmade-07, 01-handmade-08, 01-handmade-09, 01-handmade-10, 01-handmade-11, 02-random-00, 02-random-01, 02-random-02, 02-random-03, 02-random-04, 02-random-05, 02-random-06, 02-random-07, 02-random-08, 02-random-09, 02-random-10, 02-random-11, 02-random-12, 02-random-13, 02-random-14, 02-random-15, 02-random-16, 02-random-17, 02-random-18, 02-random-19, 02-random-20, 02-random-21, 02-random-22, 02-random-23, 02-random-24, 02-random-25, 02-random-26, 02-random-27, 02-random-28, 02-random-29, 02-random-30, 02-random-31, 02-random-32, 02-random-33, 02-random-34, 02-random-35, 02-random-36, 02-random-37, 02-random-38, 02-random-39, 02-random-40, 02-random-41, 02-random-42, 02-random-43, 02-random-44, 02-random-45, 02-random-46, 02-random-47, 02-random-48, 02-random-49, 03-killer-00, 03-killer-01, 03-killer-02 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00-sample-00 | AC | 2 ms | 256 KiB |
| 00-sample-01 | AC | 7 ms | 384 KiB |
| 01-handmade-00 | WA | 1 ms | 256 KiB |
| 01-handmade-01 | AC | 1 ms | 256 KiB |
| 01-handmade-02 | WA | 151 ms | 256 KiB |
| 01-handmade-03 | WA | 155 ms | 256 KiB |
| 01-handmade-04 | AC | 207 ms | 256 KiB |
| 01-handmade-05 | WA | 1873 ms | 256 KiB |
| 01-handmade-06 | WA | 268 ms | 256 KiB |
| 01-handmade-07 | WA | 419 ms | 256 KiB |
| 01-handmade-08 | AC | 155 ms | 256 KiB |
| 01-handmade-09 | AC | 180 ms | 256 KiB |
| 01-handmade-10 | AC | 1 ms | 256 KiB |
| 01-handmade-11 | AC | 6 ms | 256 KiB |
| 02-random-00 | AC | 143 ms | 256 KiB |
| 02-random-01 | WA | 1634 ms | 256 KiB |
| 02-random-02 | AC | 286 ms | 256 KiB |
| 02-random-03 | WA | 242 ms | 256 KiB |
| 02-random-04 | WA | 1397 ms | 256 KiB |
| 02-random-05 | AC | 133 ms | 256 KiB |
| 02-random-06 | WA | 744 ms | 256 KiB |
| 02-random-07 | WA | 435 ms | 256 KiB |
| 02-random-08 | WA | 1154 ms | 256 KiB |
| 02-random-09 | WA | 414 ms | 256 KiB |
| 02-random-10 | WA | 191 ms | 256 KiB |
| 02-random-11 | WA | 811 ms | 256 KiB |
| 02-random-12 | WA | 1027 ms | 256 KiB |
| 02-random-13 | AC | 472 ms | 256 KiB |
| 02-random-14 | WA | 1416 ms | 256 KiB |
| 02-random-15 | WA | 563 ms | 256 KiB |
| 02-random-16 | WA | 304 ms | 256 KiB |
| 02-random-17 | AC | 172 ms | 256 KiB |
| 02-random-18 | WA | 1271 ms | 256 KiB |
| 02-random-19 | WA | 1159 ms | 256 KiB |
| 02-random-20 | WA | 710 ms | 256 KiB |
| 02-random-21 | WA | 1193 ms | 384 KiB |
| 02-random-22 | WA | 200 ms | 256 KiB |
| 02-random-23 | WA | 893 ms | 256 KiB |
| 02-random-24 | AC | 450 ms | 256 KiB |
| 02-random-25 | WA | 312 ms | 256 KiB |
| 02-random-26 | WA | 577 ms | 256 KiB |
| 02-random-27 | WA | 457 ms | 256 KiB |
| 02-random-28 | AC | 184 ms | 256 KiB |
| 02-random-29 | WA | 930 ms | 256 KiB |
| 02-random-30 | WA | 610 ms | 256 KiB |
| 02-random-31 | WA | 170 ms | 256 KiB |
| 02-random-32 | WA | 266 ms | 256 KiB |
| 02-random-33 | WA | 855 ms | 256 KiB |
| 02-random-34 | AC | 121 ms | 256 KiB |
| 02-random-35 | AC | 133 ms | 256 KiB |
| 02-random-36 | WA | 165 ms | 256 KiB |
| 02-random-37 | WA | 190 ms | 256 KiB |
| 02-random-38 | AC | 130 ms | 256 KiB |
| 02-random-39 | WA | 1887 ms | 256 KiB |
| 02-random-40 | WA | 636 ms | 256 KiB |
| 02-random-41 | WA | 656 ms | 384 KiB |
| 02-random-42 | WA | 1709 ms | 256 KiB |
| 02-random-43 | WA | 178 ms | 256 KiB |
| 02-random-44 | WA | 1084 ms | 256 KiB |
| 02-random-45 | WA | 886 ms | 256 KiB |
| 02-random-46 | WA | 902 ms | 256 KiB |
| 02-random-47 | AC | 216 ms | 256 KiB |
| 02-random-48 | WA | 1221 ms | 256 KiB |
| 02-random-49 | WA | 154 ms | 256 KiB |
| 03-killer-00 | AC | 130 ms | 256 KiB |
| 03-killer-01 | AC | 130 ms | 256 KiB |
| 03-killer-02 | AC | 106 ms | 256 KiB |