Submission #2755515
Source Code Expand
#include <bits/stdc++.h> using namespace std; /// 9:34 const int N = 15; const long double eps = 1e-10; typedef long long ll; int n, i, j, x[N], y[N], A[N], cnt[1<<N]; ll a[1<<N]; long double apm[1<<N], dist[N+1], dp[1<<N], d[N][N]; long double solve() { int mask, msk; for(mask = 1; mask < (1<<n); ++mask) { dp[mask] = 1.0 * (a[mask] - apm[mask]) / cnt[mask]; for(msk = (mask-1) & mask; msk; msk = (msk-1) & mask) dp[mask] = max(dp[mask], min(dp[msk], dp[mask^msk])); } return dp[mask-1]; } ll sq(int x) { return (ll)x*x; } long double distant(int i, int j) { return sqrt( sq(x[i] - x[j]) + sq(y[i] - y[j]) ); } long double compute(int mask) { int i, start; long double ans = 0; for(i=0; i<n; ++i) if(mask & (1<<i)) start = i; for(i=0; i<n; ++i) dist[i] = d[start][i]; mask ^= (1<<start); while(mask) { start = n; for(i=0; i<n; ++i) if( (mask & (1<<i)) && dist[i] < dist[start] ) start = i; mask ^= (1<<start); ans += dist[start]; for(i=0; i<n; ++i) if( (mask & (1<<i)) ) dist[i] = min(dist[i], d[start][i]); } return ans; } int main() { // freopen("input", "r", stdin); // freopen("output", "w", stdout); cin.sync_with_stdio(false); cin >> n; dist[n] = 2e9; for(i=0; i<n; ++i) cin >> x[i] >> y[i] >> A[i]; for(i=0; i<n; ++i) for(j=i; j<n; ++j) d[i][j] = d[j][i] = distant(i, j); for(i=1; i<(1<<n); ++i) { apm[i] = compute(i); cnt[i] = __builtin_popcount(i); for(j=0; j<n; ++j) if(i&(1<<j)) a[i] += A[j]; } cout << setprecision(10) << fixed; cout << solve() << '\n'; return 0; }
Submission Info
Submission Time | |
---|---|
Task | E - Water Distribution |
User | Alexa2001 |
Language | C++14 (GCC 5.4.1) |
Score | 1000 |
Code Size | 1849 Byte |
Status | AC |
Exec Time | 152 ms |
Memory | 1664 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 1000 / 1000 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | example0.txt, example1.txt |
All | 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt, 021.txt, 022.txt, 023.txt, 024.txt, 025.txt, 026.txt, 027.txt, 028.txt, 029.txt, 030.txt, 031.txt, 032.txt, 033.txt, 034.txt, 035.txt, 036.txt, 037.txt, 038.txt, 039.txt, 040.txt, 041.txt, 042.txt, 043.txt, example0.txt, example1.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
000.txt | AC | 142 ms | 1664 KB |
001.txt | AC | 139 ms | 1664 KB |
002.txt | AC | 136 ms | 1664 KB |
003.txt | AC | 141 ms | 1664 KB |
004.txt | AC | 146 ms | 1664 KB |
005.txt | AC | 138 ms | 1664 KB |
006.txt | AC | 145 ms | 1664 KB |
007.txt | AC | 140 ms | 1664 KB |
008.txt | AC | 149 ms | 1664 KB |
009.txt | AC | 143 ms | 1664 KB |
010.txt | AC | 146 ms | 1664 KB |
011.txt | AC | 146 ms | 1664 KB |
012.txt | AC | 146 ms | 1664 KB |
013.txt | AC | 138 ms | 1664 KB |
014.txt | AC | 149 ms | 1664 KB |
015.txt | AC | 152 ms | 1664 KB |
016.txt | AC | 135 ms | 1664 KB |
017.txt | AC | 145 ms | 1664 KB |
018.txt | AC | 147 ms | 1664 KB |
019.txt | AC | 139 ms | 1664 KB |
020.txt | AC | 118 ms | 1664 KB |
021.txt | AC | 133 ms | 1664 KB |
022.txt | AC | 133 ms | 1664 KB |
023.txt | AC | 122 ms | 1664 KB |
024.txt | AC | 120 ms | 1664 KB |
025.txt | AC | 117 ms | 1664 KB |
026.txt | AC | 123 ms | 1664 KB |
027.txt | AC | 119 ms | 1664 KB |
028.txt | AC | 122 ms | 1664 KB |
029.txt | AC | 120 ms | 1664 KB |
030.txt | AC | 115 ms | 1664 KB |
031.txt | AC | 119 ms | 1664 KB |
032.txt | AC | 113 ms | 1664 KB |
033.txt | AC | 114 ms | 1664 KB |
034.txt | AC | 114 ms | 1664 KB |
035.txt | AC | 110 ms | 1664 KB |
036.txt | AC | 112 ms | 1664 KB |
037.txt | AC | 111 ms | 1664 KB |
038.txt | AC | 112 ms | 1664 KB |
039.txt | AC | 112 ms | 1664 KB |
040.txt | AC | 1 ms | 256 KB |
041.txt | AC | 1 ms | 256 KB |
042.txt | AC | 1 ms | 256 KB |
043.txt | AC | 1 ms | 256 KB |
example0.txt | AC | 1 ms | 256 KB |
example1.txt | AC | 128 ms | 1664 KB |