# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
68692 | 2018-08-18T06:19:18 Z | Talant | 전선 연결 (IOI17_wiring) | C++17 | 97 ms | 77948 KB |
#include "wiring.h" //#include "grader.cpp" #include <bits/stdc++.h> #define mk make_pair #define sc second #define fr first #define pb push_back using namespace std; const int N = (1e6 + 5); const long long inf = (1e18 + 7); long long n,m; long long id = 0; long long pr[N]; long long dp[N]; pair<long long,long long> a[N]; vector <pair<long long,long long> > v; long long min_total_length(vector<int> r, vector<int> b) { n = r.size(); m = b.size(); v.pb(mk(-inf,-1)); for (int i = 0; i < r.size(); i ++) v.pb(mk(r[i],0)); for (int i = 0; i < b.size(); i ++) v.pb(mk(b[i],1)); sort (v.begin(),v.end()); for (int i = 1; i < v.size(); i ++) pr[i] = pr[i - 1] + v[i].fr; for (int i = 1; i < v.size(); i ++) { int j = i + 1; while (j < v.size() && v[j].sc == v[i].sc) ++j; a[++id] = mk(i,j - 1); i = j - 1; } for (int i = a[1].fr; i <= a[1].sc; i ++) dp[i] = i * v[a[2].fr].fr - pr[i]; for (int i = 2; i <= id; i ++) { long long l1 = a[i - 1].fr; long long r1 = a[i - 1].sc; long long l2 = a[i].fr; long long r2 = a[i].sc; for (int j = l2; j <= r2; j ++) { dp[j] = inf; if ((j - l2 + 1) <= (r1 - l1 + 1)) dp[j] = dp[r1 - (j - l2 + 1)] + (pr[j] - pr[l2 - 1]) - (pr[r1] - pr[r1 - (j - l2 + 1)]); if (i + 1 <= id) dp[j] = min(dp[j],dp[j - 1] + v[a[i + 1].fr].fr - v[j].fr); dp[j] = min(dp[j],dp[j - 1] + v[j].fr - v[r1].fr); } } return dp[n + m]; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 248 KB | Output is correct |
2 | Correct | 2 ms | 356 KB | Output is correct |
3 | Correct | 2 ms | 432 KB | Output is correct |
4 | Correct | 2 ms | 560 KB | Output is correct |
5 | Correct | 3 ms | 560 KB | Output is correct |
6 | Correct | 2 ms | 568 KB | Output is correct |
7 | Correct | 3 ms | 572 KB | Output is correct |
8 | Correct | 3 ms | 580 KB | Output is correct |
9 | Correct | 2 ms | 616 KB | Output is correct |
10 | Correct | 2 ms | 644 KB | Output is correct |
11 | Correct | 2 ms | 648 KB | Output is correct |
12 | Correct | 2 ms | 668 KB | Output is correct |
13 | Correct | 3 ms | 668 KB | Output is correct |
14 | Correct | 2 ms | 668 KB | Output is correct |
15 | Correct | 3 ms | 680 KB | Output is correct |
16 | Correct | 3 ms | 684 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 3 ms | 684 KB | Output is correct |
2 | Correct | 2 ms | 684 KB | Output is correct |
3 | Correct | 41 ms | 6628 KB | Output is correct |
4 | Correct | 39 ms | 6676 KB | Output is correct |
5 | Correct | 39 ms | 6676 KB | Output is correct |
6 | Correct | 86 ms | 8724 KB | Output is correct |
7 | Correct | 57 ms | 8724 KB | Output is correct |
8 | Correct | 49 ms | 8724 KB | Output is correct |
9 | Correct | 54 ms | 8724 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 8724 KB | Output is correct |
2 | Correct | 2 ms | 8724 KB | Output is correct |
3 | Correct | 71 ms | 11424 KB | Output is correct |
4 | Correct | 81 ms | 12676 KB | Output is correct |
5 | Correct | 2 ms | 12676 KB | Output is correct |
6 | Correct | 2 ms | 12676 KB | Output is correct |
7 | Correct | 4 ms | 12676 KB | Output is correct |
8 | Correct | 3 ms | 12676 KB | Output is correct |
9 | Correct | 2 ms | 12676 KB | Output is correct |
10 | Correct | 2 ms | 12676 KB | Output is correct |
11 | Correct | 3 ms | 12676 KB | Output is correct |
12 | Correct | 3 ms | 12676 KB | Output is correct |
13 | Correct | 3 ms | 12676 KB | Output is correct |
14 | Correct | 4 ms | 12676 KB | Output is correct |
15 | Correct | 3 ms | 12676 KB | Output is correct |
16 | Correct | 2 ms | 12676 KB | Output is correct |
17 | Correct | 2 ms | 12676 KB | Output is correct |
18 | Correct | 94 ms | 15100 KB | Output is correct |
19 | Correct | 66 ms | 17032 KB | Output is correct |
20 | Correct | 80 ms | 18576 KB | Output is correct |
21 | Correct | 79 ms | 20912 KB | Output is correct |
22 | Correct | 68 ms | 22708 KB | Output is correct |
23 | Correct | 70 ms | 24640 KB | Output is correct |
24 | Correct | 71 ms | 26588 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 26588 KB | Output is correct |
2 | Correct | 53 ms | 26588 KB | Output is correct |
3 | Correct | 63 ms | 26588 KB | Output is correct |
4 | Correct | 59 ms | 26588 KB | Output is correct |
5 | Correct | 66 ms | 26588 KB | Output is correct |
6 | Correct | 2 ms | 26588 KB | Output is correct |
7 | Correct | 2 ms | 26588 KB | Output is correct |
8 | Correct | 2 ms | 26588 KB | Output is correct |
9 | Correct | 3 ms | 26588 KB | Output is correct |
10 | Correct | 2 ms | 26588 KB | Output is correct |
11 | Correct | 3 ms | 26588 KB | Output is correct |
12 | Correct | 3 ms | 26588 KB | Output is correct |
13 | Correct | 3 ms | 26588 KB | Output is correct |
14 | Correct | 3 ms | 26588 KB | Output is correct |
15 | Correct | 2 ms | 26588 KB | Output is correct |
16 | Correct | 3 ms | 26588 KB | Output is correct |
17 | Correct | 2 ms | 26588 KB | Output is correct |
18 | Correct | 52 ms | 26588 KB | Output is correct |
19 | Correct | 53 ms | 26588 KB | Output is correct |
20 | Correct | 57 ms | 26588 KB | Output is correct |
21 | Correct | 56 ms | 26588 KB | Output is correct |
22 | Correct | 56 ms | 26588 KB | Output is correct |
23 | Correct | 59 ms | 26588 KB | Output is correct |
24 | Correct | 49 ms | 26588 KB | Output is correct |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Correct | 2 ms | 248 KB | Output is correct |
2 | Correct | 2 ms | 356 KB | Output is correct |
3 | Correct | 2 ms | 432 KB | Output is correct |
4 | Correct | 2 ms | 560 KB | Output is correct |
5 | Correct | 3 ms | 560 KB | Output is correct |
6 | Correct | 2 ms | 568 KB | Output is correct |
7 | Correct | 3 ms | 572 KB | Output is correct |
8 | Correct | 3 ms | 580 KB | Output is correct |
9 | Correct | 2 ms | 616 KB | Output is correct |
10 | Correct | 2 ms | 644 KB | Output is correct |
11 | Correct | 2 ms | 648 KB | Output is correct |
12 | Correct | 2 ms | 668 KB | Output is correct |
13 | Correct | 3 ms | 668 KB | Output is correct |
14 | Correct | 2 ms | 668 KB | Output is correct |
15 | Correct | 3 ms | 680 KB | Output is correct |
16 | Correct | 3 ms | 684 KB | Output is correct |
17 | Correct | 3 ms | 684 KB | Output is correct |
18 | Correct | 2 ms | 684 KB | Output is correct |
19 | Correct | 41 ms | 6628 KB | Output is correct |
20 | Correct | 39 ms | 6676 KB | Output is correct |
21 | Correct | 39 ms | 6676 KB | Output is correct |
22 | Correct | 86 ms | 8724 KB | Output is correct |
23 | Correct | 57 ms | 8724 KB | Output is correct |
24 | Correct | 49 ms | 8724 KB | Output is correct |
25 | Correct | 54 ms | 8724 KB | Output is correct |
26 | Correct | 2 ms | 8724 KB | Output is correct |
27 | Correct | 2 ms | 8724 KB | Output is correct |
28 | Correct | 71 ms | 11424 KB | Output is correct |
29 | Correct | 81 ms | 12676 KB | Output is correct |
30 | Correct | 2 ms | 12676 KB | Output is correct |
31 | Correct | 2 ms | 12676 KB | Output is correct |
32 | Correct | 4 ms | 12676 KB | Output is correct |
33 | Correct | 3 ms | 12676 KB | Output is correct |
34 | Correct | 2 ms | 12676 KB | Output is correct |
35 | Correct | 2 ms | 12676 KB | Output is correct |
36 | Correct | 3 ms | 12676 KB | Output is correct |
37 | Correct | 3 ms | 12676 KB | Output is correct |
38 | Correct | 3 ms | 12676 KB | Output is correct |
39 | Correct | 4 ms | 12676 KB | Output is correct |
40 | Correct | 3 ms | 12676 KB | Output is correct |
41 | Correct | 2 ms | 12676 KB | Output is correct |
42 | Correct | 2 ms | 12676 KB | Output is correct |
43 | Correct | 94 ms | 15100 KB | Output is correct |
44 | Correct | 66 ms | 17032 KB | Output is correct |
45 | Correct | 80 ms | 18576 KB | Output is correct |
46 | Correct | 79 ms | 20912 KB | Output is correct |
47 | Correct | 68 ms | 22708 KB | Output is correct |
48 | Correct | 70 ms | 24640 KB | Output is correct |
49 | Correct | 71 ms | 26588 KB | Output is correct |
50 | Correct | 2 ms | 26588 KB | Output is correct |
51 | Correct | 53 ms | 26588 KB | Output is correct |
52 | Correct | 63 ms | 26588 KB | Output is correct |
53 | Correct | 59 ms | 26588 KB | Output is correct |
54 | Correct | 66 ms | 26588 KB | Output is correct |
55 | Correct | 2 ms | 26588 KB | Output is correct |
56 | Correct | 2 ms | 26588 KB | Output is correct |
57 | Correct | 2 ms | 26588 KB | Output is correct |
58 | Correct | 3 ms | 26588 KB | Output is correct |
59 | Correct | 2 ms | 26588 KB | Output is correct |
60 | Correct | 3 ms | 26588 KB | Output is correct |
61 | Correct | 3 ms | 26588 KB | Output is correct |
62 | Correct | 3 ms | 26588 KB | Output is correct |
63 | Correct | 3 ms | 26588 KB | Output is correct |
64 | Correct | 2 ms | 26588 KB | Output is correct |
65 | Correct | 3 ms | 26588 KB | Output is correct |
66 | Correct | 2 ms | 26588 KB | Output is correct |
67 | Correct | 52 ms | 26588 KB | Output is correct |
68 | Correct | 53 ms | 26588 KB | Output is correct |
69 | Correct | 57 ms | 26588 KB | Output is correct |
70 | Correct | 56 ms | 26588 KB | Output is correct |
71 | Correct | 56 ms | 26588 KB | Output is correct |
72 | Correct | 59 ms | 26588 KB | Output is correct |
73 | Correct | 49 ms | 26588 KB | Output is correct |
74 | Correct | 65 ms | 27752 KB | Output is correct |
75 | Correct | 68 ms | 29384 KB | Output is correct |
76 | Correct | 61 ms | 31264 KB | Output is correct |
77 | Correct | 83 ms | 32696 KB | Output is correct |
78 | Correct | 80 ms | 34108 KB | Output is correct |
79 | Correct | 65 ms | 35584 KB | Output is correct |
80 | Correct | 55 ms | 36804 KB | Output is correct |
81 | Correct | 61 ms | 38172 KB | Output is correct |
82 | Correct | 61 ms | 39604 KB | Output is correct |
83 | Correct | 49 ms | 41128 KB | Output is correct |
84 | Correct | 51 ms | 43088 KB | Output is correct |
85 | Correct | 66 ms | 45024 KB | Output is correct |
86 | Correct | 64 ms | 46996 KB | Output is correct |
87 | Correct | 64 ms | 48900 KB | Output is correct |
88 | Correct | 61 ms | 50832 KB | Output is correct |
89 | Correct | 69 ms | 52964 KB | Output is correct |
90 | Correct | 67 ms | 54728 KB | Output is correct |
91 | Correct | 70 ms | 56784 KB | Output is correct |
92 | Correct | 68 ms | 58720 KB | Output is correct |
93 | Correct | 63 ms | 60528 KB | Output is correct |
94 | Correct | 67 ms | 62600 KB | Output is correct |
95 | Correct | 64 ms | 64372 KB | Output is correct |
96 | Correct | 60 ms | 66336 KB | Output is correct |
97 | Correct | 67 ms | 68288 KB | Output is correct |
98 | Correct | 69 ms | 70216 KB | Output is correct |
99 | Correct | 97 ms | 72280 KB | Output is correct |
100 | Correct | 66 ms | 74092 KB | Output is correct |
101 | Correct | 59 ms | 76016 KB | Output is correct |
102 | Correct | 57 ms | 77948 KB | Output is correct |