Submission #84065
Source Code Expand
#include <iostream> #include <iomanip> #include <vector> #include <map> #include <string> #include <algorithm> #include <cmath> #include <cstring> #define rep(i,n) for(int i=0;i<(n);i++) using namespace std; typedef pair<double, double> P; struct edge {int to, rev, cap; double cost;}; const double eps = 1e-8; const double INF = 1e100; const int maxV = 102; int V; vector<edge> G[maxV]; bool used[maxV]; double dist[maxV]; int prevv[maxV], preve[maxV]; void add_edge(int from, int to, int cap, double cost) { G[from].push_back((edge){to,G[to].size(), cap, cost}); G[to].push_back((edge){from, G[from].size() - 1, 0, -cost}); } double min_cost_flow(int s, int t, int f) { double res = 0; while(f > 0) { fill(dist, dist + V, INF); dist[s] = 0; bool update = true; while(update) { update = false; for (int v = 0; v < V; v++) { if (dist[v] > 1e10) continue; for (int i = 0; i < G[v].size(); i++) { edge &e = G[v][i]; if (e.cap > 0 && dist[e.to] - dist[v] - e.cost > eps) { dist[e.to] = dist[v] + e.cost; prevv[e.to] = v; preve[e.to] = i; update = true; } } } } if (dist[t] > 1e10) { return 0; } int d = f; for (int v = t; v != s; v = prevv[v]) { d = min(d, G[prevv[v]][preve[v]].cap); } f -= d; res += dist[t] * d; for (int v = t; v != s; v = prevv[v]) { edge &e = G[prevv[v]][preve[v]]; e.cap -= d; G[v][e.rev].cap += d; } } return res; } double dis(P a, P b) { return sqrt((a.first - b.first) * (a.first - b.first) + (a.second - b.second) * (a.second - b.second)); } int main() { int n; double ans = 0; cin >> n; V = 102; vector<P> l,r; rep(i, n) { int x,y; cin >> x >> y; if (x == 0)continue; if (x < 0) l.push_back(make_pair(-x,y)); else r.push_back(make_pair(x,y)); ans += abs(x); } double fmax = 0; rep(f,51) { rep(i,102)G[i].clear(); rep(i, l.size()) { add_edge(100, i, 1, 0); } rep(i, r.size()) { add_edge(l.size() + i, 101, 1, 0); } rep(i, l.size()) { rep(j, r.size()) { if ((l[i].first + r[j].first - dis(l[i], r[j])) > 0) add_edge(i, l.size() + j, 1, -(l[i].first + r[j].first - dis(l[i], r[j]))); } } fmax = max(fmax, -min_cost_flow(100, 101, f + 1)); } cout << setprecision(10); cout << ans - fmax << endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | B - 玉座の間 |
User | y3eadgbe |
Language | C++ (G++ 4.6.4) |
Score | 200 |
Code Size | 2947 Byte |
Status | AC |
Exec Time | 131 ms |
Memory | 920 KB |
Judge Result
Set Name | Subtask1 | Subtask2 | Subtask3 | Subtask4 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 50 / 50 | 50 / 50 | 50 / 50 | 50 / 50 | ||||||||
Status |
|
|
|
|
Set Name | Test Cases |
---|---|
Subtask1 | 11_rand00.txt, 11_rand01.txt, 11_rand02.txt, 11_rand03.txt, 11_rand04.txt, 11_rand05.txt, 11_rand06.txt, 11_rand07.txt, 11_rand08.txt, 11_rand09.txt, 11_rand10.txt, 11_rand11.txt, 11_rand12.txt, 11_rand13.txt, 11_rand14.txt, 11_rand15.txt, 11_rand16.txt, 11_rand17.txt, 11_rand18.txt, 11_rand19.txt, 11_rand20.txt, 11_rand21.txt, 11_rand22.txt, 11_rand23.txt, 11_rand24.txt |
Subtask2 | 11_rand00.txt, 11_rand01.txt, 11_rand02.txt, 11_rand03.txt, 11_rand04.txt, 11_rand05.txt, 11_rand06.txt, 11_rand07.txt, 11_rand08.txt, 11_rand09.txt, 11_rand10.txt, 11_rand11.txt, 11_rand12.txt, 11_rand13.txt, 11_rand14.txt, 11_rand15.txt, 11_rand16.txt, 11_rand17.txt, 11_rand18.txt, 11_rand19.txt, 11_rand20.txt, 11_rand21.txt, 11_rand22.txt, 11_rand23.txt, 11_rand24.txt, 21_rand00.txt, 21_rand01.txt, 21_rand02.txt, 21_rand03.txt, 21_rand04.txt, 21_rand05.txt, 21_rand06.txt, 21_rand07.txt, 21_rand08.txt, 21_rand09.txt, 21_rand10.txt, 21_rand11.txt, 21_rand12.txt, 21_rand13.txt, 21_rand14.txt, 21_rand15.txt, 21_rand16.txt, 21_rand17.txt, 21_rand18.txt, 21_rand19.txt, 21_rand20.txt, 21_rand21.txt, 21_rand22.txt, 21_rand23.txt, 21_rand24.txt |
Subtask3 | 11_rand00.txt, 11_rand01.txt, 11_rand02.txt, 11_rand03.txt, 11_rand04.txt, 11_rand05.txt, 11_rand06.txt, 11_rand07.txt, 11_rand08.txt, 11_rand09.txt, 11_rand10.txt, 11_rand11.txt, 11_rand12.txt, 11_rand13.txt, 11_rand14.txt, 11_rand15.txt, 11_rand16.txt, 11_rand17.txt, 11_rand18.txt, 11_rand19.txt, 11_rand20.txt, 11_rand21.txt, 11_rand22.txt, 11_rand23.txt, 11_rand24.txt, 21_rand00.txt, 21_rand01.txt, 21_rand02.txt, 21_rand03.txt, 21_rand04.txt, 21_rand05.txt, 21_rand06.txt, 21_rand07.txt, 21_rand08.txt, 21_rand09.txt, 21_rand10.txt, 21_rand11.txt, 21_rand12.txt, 21_rand13.txt, 21_rand14.txt, 21_rand15.txt, 21_rand16.txt, 21_rand17.txt, 21_rand18.txt, 21_rand19.txt, 21_rand20.txt, 21_rand21.txt, 21_rand22.txt, 21_rand23.txt, 21_rand24.txt, 31_rand00.txt, 31_rand01.txt, 31_rand02.txt, 31_rand03.txt, 31_rand04.txt, 31_rand05.txt, 31_rand06.txt, 31_rand07.txt, 31_rand08.txt, 31_rand09.txt, 31_rand10.txt, 31_rand11.txt, 31_rand12.txt, 31_rand13.txt, 31_rand14.txt, 31_rand15.txt, 31_rand16.txt, 31_rand17.txt, 31_rand18.txt, 31_rand19.txt, 31_rand20.txt, 31_rand21.txt, 31_rand22.txt, 31_rand23.txt, 31_rand24.txt |
Subtask4 | 11_rand00.txt, 11_rand01.txt, 11_rand02.txt, 11_rand03.txt, 11_rand04.txt, 11_rand05.txt, 11_rand06.txt, 11_rand07.txt, 11_rand08.txt, 11_rand09.txt, 11_rand10.txt, 11_rand11.txt, 11_rand12.txt, 11_rand13.txt, 11_rand14.txt, 11_rand15.txt, 11_rand16.txt, 11_rand17.txt, 11_rand18.txt, 11_rand19.txt, 11_rand20.txt, 11_rand21.txt, 11_rand22.txt, 11_rand23.txt, 11_rand24.txt, 21_rand00.txt, 21_rand01.txt, 21_rand02.txt, 21_rand03.txt, 21_rand04.txt, 21_rand05.txt, 21_rand06.txt, 21_rand07.txt, 21_rand08.txt, 21_rand09.txt, 21_rand10.txt, 21_rand11.txt, 21_rand12.txt, 21_rand13.txt, 21_rand14.txt, 21_rand15.txt, 21_rand16.txt, 21_rand17.txt, 21_rand18.txt, 21_rand19.txt, 21_rand20.txt, 21_rand21.txt, 21_rand22.txt, 21_rand23.txt, 21_rand24.txt, 31_rand00.txt, 31_rand01.txt, 31_rand02.txt, 31_rand03.txt, 31_rand04.txt, 31_rand05.txt, 31_rand06.txt, 31_rand07.txt, 31_rand08.txt, 31_rand09.txt, 31_rand10.txt, 31_rand11.txt, 31_rand12.txt, 31_rand13.txt, 31_rand14.txt, 31_rand15.txt, 31_rand16.txt, 31_rand17.txt, 31_rand18.txt, 31_rand19.txt, 31_rand20.txt, 31_rand21.txt, 31_rand22.txt, 31_rand23.txt, 31_rand24.txt, 41_rand00.txt, 41_rand01.txt, 41_rand02.txt, 41_rand03.txt, 41_rand04.txt, 41_rand05.txt, 41_rand06.txt, 41_rand07.txt, 41_rand08.txt, 41_rand09.txt, 41_rand10.txt, 41_rand11.txt, 41_rand12.txt, 41_rand13.txt, 41_rand14.txt, 41_rand15.txt, 41_rand16.txt, 41_rand17.txt, 41_rand18.txt, 41_rand19.txt, 41_rand20.txt, 41_rand21.txt, 41_rand22.txt, 41_rand23.txt, 41_rand24.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
11_rand00.txt | AC | 21 ms | 792 KB |
11_rand01.txt | AC | 20 ms | 792 KB |
11_rand02.txt | AC | 24 ms | 724 KB |
11_rand03.txt | AC | 18 ms | 792 KB |
11_rand04.txt | AC | 19 ms | 784 KB |
11_rand05.txt | AC | 20 ms | 696 KB |
11_rand06.txt | AC | 20 ms | 788 KB |
11_rand07.txt | AC | 20 ms | 800 KB |
11_rand08.txt | AC | 20 ms | 816 KB |
11_rand09.txt | AC | 20 ms | 780 KB |
11_rand10.txt | AC | 19 ms | 788 KB |
11_rand11.txt | AC | 20 ms | 788 KB |
11_rand12.txt | AC | 20 ms | 788 KB |
11_rand13.txt | AC | 20 ms | 792 KB |
11_rand14.txt | AC | 18 ms | 788 KB |
11_rand15.txt | AC | 20 ms | 788 KB |
11_rand16.txt | AC | 19 ms | 792 KB |
11_rand17.txt | AC | 20 ms | 792 KB |
11_rand18.txt | AC | 20 ms | 816 KB |
11_rand19.txt | AC | 19 ms | 788 KB |
11_rand20.txt | AC | 21 ms | 792 KB |
11_rand21.txt | AC | 20 ms | 796 KB |
11_rand22.txt | AC | 20 ms | 800 KB |
11_rand23.txt | AC | 20 ms | 788 KB |
11_rand24.txt | AC | 20 ms | 796 KB |
21_rand00.txt | AC | 20 ms | 792 KB |
21_rand01.txt | AC | 19 ms | 788 KB |
21_rand02.txt | AC | 19 ms | 788 KB |
21_rand03.txt | AC | 20 ms | 792 KB |
21_rand04.txt | AC | 19 ms | 788 KB |
21_rand05.txt | AC | 19 ms | 788 KB |
21_rand06.txt | AC | 19 ms | 792 KB |
21_rand07.txt | AC | 20 ms | 792 KB |
21_rand08.txt | AC | 20 ms | 792 KB |
21_rand09.txt | AC | 20 ms | 788 KB |
21_rand10.txt | AC | 20 ms | 792 KB |
21_rand11.txt | AC | 20 ms | 792 KB |
21_rand12.txt | AC | 20 ms | 784 KB |
21_rand13.txt | AC | 21 ms | 796 KB |
21_rand14.txt | AC | 20 ms | 792 KB |
21_rand15.txt | AC | 19 ms | 788 KB |
21_rand16.txt | AC | 20 ms | 796 KB |
21_rand17.txt | AC | 19 ms | 792 KB |
21_rand18.txt | AC | 21 ms | 784 KB |
21_rand19.txt | AC | 20 ms | 784 KB |
21_rand20.txt | AC | 20 ms | 792 KB |
21_rand21.txt | AC | 18 ms | 792 KB |
21_rand22.txt | AC | 20 ms | 792 KB |
21_rand23.txt | AC | 20 ms | 796 KB |
21_rand24.txt | AC | 19 ms | 784 KB |
31_rand00.txt | AC | 18 ms | 792 KB |
31_rand01.txt | AC | 20 ms | 792 KB |
31_rand02.txt | AC | 22 ms | 788 KB |
31_rand03.txt | AC | 20 ms | 788 KB |
31_rand04.txt | AC | 21 ms | 788 KB |
31_rand05.txt | AC | 21 ms | 796 KB |
31_rand06.txt | AC | 20 ms | 780 KB |
31_rand07.txt | AC | 20 ms | 788 KB |
31_rand08.txt | AC | 20 ms | 788 KB |
31_rand09.txt | AC | 21 ms | 792 KB |
31_rand10.txt | AC | 21 ms | 796 KB |
31_rand11.txt | AC | 21 ms | 696 KB |
31_rand12.txt | AC | 20 ms | 788 KB |
31_rand13.txt | AC | 19 ms | 784 KB |
31_rand14.txt | AC | 20 ms | 784 KB |
31_rand15.txt | AC | 20 ms | 784 KB |
31_rand16.txt | AC | 20 ms | 784 KB |
31_rand17.txt | AC | 21 ms | 792 KB |
31_rand18.txt | AC | 22 ms | 792 KB |
31_rand19.txt | AC | 23 ms | 792 KB |
31_rand20.txt | AC | 23 ms | 784 KB |
31_rand21.txt | AC | 20 ms | 792 KB |
31_rand22.txt | AC | 21 ms | 792 KB |
31_rand23.txt | AC | 21 ms | 788 KB |
31_rand24.txt | AC | 20 ms | 792 KB |
41_rand00.txt | AC | 23 ms | 788 KB |
41_rand01.txt | AC | 20 ms | 788 KB |
41_rand02.txt | AC | 41 ms | 792 KB |
41_rand03.txt | AC | 53 ms | 796 KB |
41_rand04.txt | AC | 56 ms | 696 KB |
41_rand05.txt | AC | 34 ms | 792 KB |
41_rand06.txt | AC | 32 ms | 784 KB |
41_rand07.txt | AC | 104 ms | 792 KB |
41_rand08.txt | AC | 21 ms | 788 KB |
41_rand09.txt | AC | 29 ms | 700 KB |
41_rand10.txt | AC | 20 ms | 664 KB |
41_rand11.txt | AC | 62 ms | 788 KB |
41_rand12.txt | AC | 81 ms | 796 KB |
41_rand13.txt | AC | 27 ms | 780 KB |
41_rand14.txt | AC | 35 ms | 788 KB |
41_rand15.txt | AC | 22 ms | 788 KB |
41_rand16.txt | AC | 20 ms | 792 KB |
41_rand17.txt | AC | 58 ms | 788 KB |
41_rand18.txt | AC | 131 ms | 920 KB |
41_rand19.txt | AC | 125 ms | 912 KB |
41_rand20.txt | AC | 37 ms | 796 KB |
41_rand21.txt | AC | 20 ms | 792 KB |
41_rand22.txt | AC | 28 ms | 668 KB |
41_rand23.txt | AC | 91 ms | 788 KB |
41_rand24.txt | AC | 62 ms | 792 KB |