Submission #83872
Source Code Expand
#include <cstdio> #include <vector> #include <queue> #include <cmath> #include <algorithm> using namespace std; struct edge { int to; int cap; double cost; int rev; }; int V; vector <edge> g[202]; double h[202]; double dist[202]; int prevv[202]; int preve[202]; double d(double x1, double y1, double x2, double y2) { return sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1- y2)); } void add_edge(int from, int to, int cap, double cost) { g[from].push_back((edge){to, cap, cost, g[to].size()}); g[to].push_back((edge){from, 0, -cost, g[from].size() - 1}); } double min_cost_flow(int s, int t, int f) { int i; double res = 0; for (i = 0; i < V; i++) h[i] = 0; while (f > 0) { int d = f; priority_queue <pair<double, int> > q; for (i = 0; i < V; i++) dist[i] = 1e9; dist[s] = 0; q.push(make_pair(0, s)); while (!q.empty()) { double c = -q.top().first; int v = q.top().second; q.pop(); if (dist[v] < c) continue; for (i = 0; i < g[v].size(); i++) { edge &e = g[v][i]; if (e.cap > 0 && dist[e.to] > dist[v] + e.cost + h[v] - h[e.to]) { dist[e.to] = dist[v] + e.cost + h[v] - h[e.to]; prevv[e.to] = v; preve[e.to] = i; q.push(make_pair(-dist[e.to], e.to)); } } } if (dist[t] == 1e9) return -1; for (i = 0; i < V; i++) h[i] += dist[i]; for (i = t; i != s; i = prevv[i]) d = min(d, g[prevv[i]][preve[i]].cap); f -= d; res += d * h[t]; for (i = t; i != s; i = prevv[i]) { edge &e = g[prevv[i]][preve[i]]; e.cap -= d; g[i][e.rev].cap += d; } } return res; } int main() { int n, i, j; int a[100][2]; scanf("%d", &n); for (i = 0; i < n; i++) scanf("%d %d", &a[i][0], &a[i][1]); V = n * 2 + 2; for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { if (i == j) { add_edge(i, n + j, 1, d(a[i][0], a[i][1], 0, a[i][1])); } else { add_edge(i, n + j, 1, d(a[i][0], a[i][1], -a[j][0], a[j][1]) / 2); } } } for (i = 0; i < n; i++) { add_edge(V - 1, i, 1, 0); add_edge(n + i, V - 2, 1, 0); } printf("%.12lf\n", min_cost_flow(V - 1, V - 2, n)); return 0; }
Submission Info
Submission Time | |
---|---|
Task | B - 玉座の間 |
User | kawatea |
Language | C++ (G++ 4.6.4) |
Score | 200 |
Code Size | 2797 Byte |
Status | AC |
Exec Time | 105 ms |
Memory | 1480 KB |
Compile Error
./Main.cpp: In function ‘int main()’: ./Main.cpp:96:20: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result] ./Main.cpp:98:63: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
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 | 780 KB |
11_rand01.txt | AC | 65 ms | 728 KB |
11_rand02.txt | AC | 55 ms | 732 KB |
11_rand03.txt | AC | 24 ms | 764 KB |
11_rand04.txt | AC | 63 ms | 724 KB |
11_rand05.txt | AC | 22 ms | 780 KB |
11_rand06.txt | AC | 21 ms | 780 KB |
11_rand07.txt | AC | 21 ms | 628 KB |
11_rand08.txt | AC | 21 ms | 776 KB |
11_rand09.txt | AC | 21 ms | 784 KB |
11_rand10.txt | AC | 25 ms | 780 KB |
11_rand11.txt | AC | 22 ms | 780 KB |
11_rand12.txt | AC | 22 ms | 740 KB |
11_rand13.txt | AC | 23 ms | 768 KB |
11_rand14.txt | AC | 24 ms | 728 KB |
11_rand15.txt | AC | 25 ms | 760 KB |
11_rand16.txt | AC | 22 ms | 784 KB |
11_rand17.txt | AC | 21 ms | 728 KB |
11_rand18.txt | AC | 22 ms | 780 KB |
11_rand19.txt | AC | 24 ms | 784 KB |
11_rand20.txt | AC | 42 ms | 720 KB |
11_rand21.txt | AC | 43 ms | 720 KB |
11_rand22.txt | AC | 66 ms | 724 KB |
11_rand23.txt | AC | 20 ms | 760 KB |
11_rand24.txt | AC | 19 ms | 780 KB |
21_rand00.txt | AC | 21 ms | 776 KB |
21_rand01.txt | AC | 21 ms | 780 KB |
21_rand02.txt | AC | 23 ms | 788 KB |
21_rand03.txt | AC | 21 ms | 800 KB |
21_rand04.txt | AC | 24 ms | 744 KB |
21_rand05.txt | AC | 20 ms | 780 KB |
21_rand06.txt | AC | 24 ms | 784 KB |
21_rand07.txt | AC | 20 ms | 776 KB |
21_rand08.txt | AC | 21 ms | 768 KB |
21_rand09.txt | AC | 22 ms | 744 KB |
21_rand10.txt | AC | 23 ms | 816 KB |
21_rand11.txt | AC | 24 ms | 780 KB |
21_rand12.txt | AC | 20 ms | 780 KB |
21_rand13.txt | AC | 21 ms | 788 KB |
21_rand14.txt | AC | 19 ms | 776 KB |
21_rand15.txt | AC | 30 ms | 724 KB |
21_rand16.txt | AC | 43 ms | 732 KB |
21_rand17.txt | AC | 24 ms | 612 KB |
21_rand18.txt | AC | 26 ms | 732 KB |
21_rand19.txt | AC | 23 ms | 780 KB |
21_rand20.txt | AC | 21 ms | 820 KB |
21_rand21.txt | AC | 21 ms | 784 KB |
21_rand22.txt | AC | 24 ms | 720 KB |
21_rand23.txt | AC | 19 ms | 776 KB |
21_rand24.txt | AC | 20 ms | 744 KB |
31_rand00.txt | AC | 23 ms | 784 KB |
31_rand01.txt | AC | 22 ms | 776 KB |
31_rand02.txt | AC | 19 ms | 780 KB |
31_rand03.txt | AC | 21 ms | 760 KB |
31_rand04.txt | AC | 21 ms | 776 KB |
31_rand05.txt | AC | 21 ms | 776 KB |
31_rand06.txt | AC | 19 ms | 780 KB |
31_rand07.txt | AC | 23 ms | 812 KB |
31_rand08.txt | AC | 19 ms | 780 KB |
31_rand09.txt | AC | 21 ms | 784 KB |
31_rand10.txt | AC | 21 ms | 776 KB |
31_rand11.txt | AC | 23 ms | 776 KB |
31_rand12.txt | AC | 25 ms | 784 KB |
31_rand13.txt | AC | 28 ms | 728 KB |
31_rand14.txt | AC | 22 ms | 780 KB |
31_rand15.txt | AC | 68 ms | 732 KB |
31_rand16.txt | AC | 105 ms | 736 KB |
31_rand17.txt | AC | 24 ms | 716 KB |
31_rand18.txt | AC | 22 ms | 776 KB |
31_rand19.txt | AC | 19 ms | 780 KB |
31_rand20.txt | AC | 22 ms | 744 KB |
31_rand21.txt | AC | 22 ms | 780 KB |
31_rand22.txt | AC | 21 ms | 780 KB |
31_rand23.txt | AC | 23 ms | 812 KB |
31_rand24.txt | AC | 18 ms | 776 KB |
41_rand00.txt | AC | 22 ms | 788 KB |
41_rand01.txt | AC | 22 ms | 780 KB |
41_rand02.txt | AC | 25 ms | 972 KB |
41_rand03.txt | AC | 27 ms | 1012 KB |
41_rand04.txt | AC | 29 ms | 1208 KB |
41_rand05.txt | AC | 25 ms | 960 KB |
41_rand06.txt | AC | 25 ms | 908 KB |
41_rand07.txt | AC | 33 ms | 1204 KB |
41_rand08.txt | AC | 20 ms | 820 KB |
41_rand09.txt | AC | 24 ms | 944 KB |
41_rand10.txt | AC | 20 ms | 628 KB |
41_rand11.txt | AC | 29 ms | 1224 KB |
41_rand12.txt | AC | 34 ms | 1332 KB |
41_rand13.txt | AC | 22 ms | 784 KB |
41_rand14.txt | AC | 26 ms | 976 KB |
41_rand15.txt | AC | 21 ms | 784 KB |
41_rand16.txt | AC | 22 ms | 628 KB |
41_rand17.txt | AC | 28 ms | 1016 KB |
41_rand18.txt | AC | 41 ms | 1480 KB |
41_rand19.txt | AC | 40 ms | 1412 KB |
41_rand20.txt | AC | 23 ms | 884 KB |
41_rand21.txt | AC | 21 ms | 704 KB |
41_rand22.txt | AC | 22 ms | 904 KB |
41_rand23.txt | AC | 33 ms | 1340 KB |
41_rand24.txt | AC | 29 ms | 1172 KB |