제출 #1173246

#제출 시각아이디문제언어결과실행 시간메모리
1173246nuutsnoyntonDrzava (COCI15_drzava)C++20
0 / 160
1096 ms324 KiB
#include<bits/stdc++.h> using namespace std; using ll = long long; const ll N = 5e4 + 2; ll x[N], y[N], c[N]; ll ataman[N], k, n; ll Get(ll x) { if ( x == ataman[x]) return x; return ataman[x] = Get(ataman[x]); } void Unite(ll x, ll y) { x = Get(x); y = Get(y); if ( x == y) return ; if ( x > y) swap(x, y); ataman[y] = x; return ; } bool Can(double R) { double S, K = R * R; ll i, j, r, cur; for (i = 1; i <= n; i ++) ataman[i] = i; for (i = 1; i <= n; i ++) { for (j = i + 1; j <= n; j ++) { S =(x[i] - x[j]) * (x[i] - x[j]) + (y[i] - y[j] ) * (y[i] - y[j]); if ( S <= K) { Unite(i, j); } } } vector < ll > v[n + 2]; for (i = 1; i <= n; i ++) { // cout << Get(i) << " "; v[Get(i)].push_back(i); } // cout << "\n"; for (i = 1; i <= n; i ++) { ll A[3][32] = {0}; A[0][0] = 1; cur = 0; for (j = 0; j < v[i].size(); j ++) { // cout << c[v[i][j]] << " "; for ( r = 0; r < k; r ++) A[1 - cur][r] = 0; for ( r = 0; r < k; r ++) { A[1 - cur][(r + c[v[i][j]]) % k] += A[cur][r]; A[1 - cur][r] += A[cur][r]; } cur = 1 - cur; } if ( A[cur][0] > 1) return true; } return false; } int main() { ll i; cin >> n >> k; for (i = 1; i <= n; i ++) { cin >> x[i] >> y[i] >> c[i]; c[i] %= k; } double lo , mid , hi; lo = 0; hi = 4e9; // cout << Can(2) << endl; while ( hi - lo > 0.0000000001) { mid = (lo+ hi)/2; if (!Can(mid)) lo = mid + 0.00000000001; else hi = mid; } printf("%.3lf", lo); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...