# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
68775 |
2018-08-18T10:57:05 Z |
Inovak |
Wiring (IOI17_wiring) |
C++14 |
|
127 ms |
16136 KB |
//#include "grader.cpp"
#include "wiring.h"
#include <bits/stdc++.h>
#define fr first
#define sc second
#define pb push_back
#define mk make_pair
#define ll long long
#define OK puts("OK");
#define sz(s) (int)s.size()
#define all(s) s.begin(), s.end()
using namespace std;
const int N = 5e5+10;
const int nn = 2e5;
const ll inf = 1e16+7;
ll n, m, x, b;
ll dp[N], sum[N];
ll pr[N];
vector <pair <ll, ll> > all;
ll get(int l, int r) {
return abs(sum[r] - sum[l - 1]);
}
long long min_total_length(vector<int> R, vector<int> B) {
n = sz(R);
m = sz(B);
for(int i = 0; i < n; i++) {
all.pb(mk(R[i], 1));
dp[i+1] = inf;
}
for(int i = 0; i < m; i++) {
all.pb(mk(B[i], 0));
dp[i + n + 1] = inf;
}
if(R.back() < B[0]) {
ll ans = 0;
for(int i = 0; i < sz(R) - 1; i++)
ans += R.back() - R[i];
for(int i = 1; i < sz(B); i++)
ans += B[i] - B[0];
return ans + max(sz(R), sz(B)) * (B[0] - R.back());
}
R.insert(R.begin(), -inf);
R.insert(R.end(), inf);
B.insert(B.begin(), -inf);
B.insert(B.end(), inf);
n += m;
all.pb(mk(-inf, -1));
sort(all(all));
memset(pr, -1, sizeof(pr));
pr[nn] = 0;
for(int i = 1; i <= n; i++) {
sum[i] = sum[i - 1] + (all[i].sc ? -all[i].fr : all[i].fr);
b += (all[i].sc ? -1 : 1);
int j = pr[b + nn];
pr[b + nn] = i;
ll nl, nr;
if (all[i].sc) {
nl = *(lower_bound(B.begin(), B.end(), all[i].first) - 1);
nr = *lower_bound(B.begin(), B.end(), all[i].first);
}
else {
nl = *(lower_bound(R.begin(), R.end(), all[i].first) - 1);
nr = *lower_bound(R.begin(), R.end(), all[i].first);
}
dp[i] = dp[i - 1] + min(all[i].first - nl, nr - all[i].first);
if(j == -1) continue;
dp[i] = min(dp[i], dp[j] + get(j + 1, i));
}
return dp[n];
}
Compilation message
wiring.cpp: In function 'long long int min_total_length(std::vector<int>, std::vector<int>)':
wiring.cpp:50:25: warning: overflow in implicit constant conversion [-Woverflow]
R.insert(R.begin(), -inf);
^~~~
wiring.cpp:51:26: warning: overflow in implicit constant conversion [-Woverflow]
R.insert(R.end(), inf);
^
wiring.cpp:52:25: warning: overflow in implicit constant conversion [-Woverflow]
B.insert(B.begin(), -inf);
^~~~
wiring.cpp:53:26: warning: overflow in implicit constant conversion [-Woverflow]
B.insert(B.end(), inf);
^
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
4216 KB |
Output is correct |
2 |
Correct |
5 ms |
4216 KB |
Output is correct |
3 |
Correct |
5 ms |
4384 KB |
Output is correct |
4 |
Correct |
7 ms |
4384 KB |
Output is correct |
5 |
Correct |
6 ms |
4384 KB |
Output is correct |
6 |
Correct |
6 ms |
4576 KB |
Output is correct |
7 |
Correct |
6 ms |
4576 KB |
Output is correct |
8 |
Correct |
7 ms |
4576 KB |
Output is correct |
9 |
Correct |
7 ms |
4576 KB |
Output is correct |
10 |
Correct |
6 ms |
4576 KB |
Output is correct |
11 |
Correct |
6 ms |
4576 KB |
Output is correct |
12 |
Correct |
6 ms |
4576 KB |
Output is correct |
13 |
Correct |
6 ms |
4576 KB |
Output is correct |
14 |
Correct |
6 ms |
4576 KB |
Output is correct |
15 |
Correct |
7 ms |
4576 KB |
Output is correct |
16 |
Correct |
6 ms |
4576 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3 ms |
4576 KB |
Output is correct |
2 |
Correct |
2 ms |
4576 KB |
Output is correct |
3 |
Correct |
38 ms |
8520 KB |
Output is correct |
4 |
Incorrect |
43 ms |
9312 KB |
3rd lines differ - on the 1st token, expected: '41599604178272', found: '41586719276384' |
5 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
9312 KB |
Output is correct |
2 |
Correct |
5 ms |
9312 KB |
Output is correct |
3 |
Correct |
97 ms |
16020 KB |
Output is correct |
4 |
Correct |
92 ms |
16020 KB |
Output is correct |
5 |
Correct |
6 ms |
16020 KB |
Output is correct |
6 |
Correct |
5 ms |
16020 KB |
Output is correct |
7 |
Correct |
6 ms |
16020 KB |
Output is correct |
8 |
Correct |
5 ms |
16020 KB |
Output is correct |
9 |
Correct |
6 ms |
16020 KB |
Output is correct |
10 |
Correct |
6 ms |
16020 KB |
Output is correct |
11 |
Correct |
6 ms |
16020 KB |
Output is correct |
12 |
Correct |
6 ms |
16020 KB |
Output is correct |
13 |
Correct |
6 ms |
16020 KB |
Output is correct |
14 |
Correct |
5 ms |
16020 KB |
Output is correct |
15 |
Correct |
6 ms |
16020 KB |
Output is correct |
16 |
Correct |
6 ms |
16020 KB |
Output is correct |
17 |
Correct |
6 ms |
16020 KB |
Output is correct |
18 |
Correct |
106 ms |
16036 KB |
Output is correct |
19 |
Correct |
104 ms |
16036 KB |
Output is correct |
20 |
Correct |
99 ms |
16100 KB |
Output is correct |
21 |
Correct |
99 ms |
16100 KB |
Output is correct |
22 |
Correct |
101 ms |
16100 KB |
Output is correct |
23 |
Correct |
109 ms |
16108 KB |
Output is correct |
24 |
Correct |
115 ms |
16108 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
16108 KB |
Output is correct |
2 |
Correct |
77 ms |
16108 KB |
Output is correct |
3 |
Correct |
93 ms |
16108 KB |
Output is correct |
4 |
Correct |
127 ms |
16108 KB |
Output is correct |
5 |
Correct |
97 ms |
16108 KB |
Output is correct |
6 |
Correct |
6 ms |
16108 KB |
Output is correct |
7 |
Correct |
6 ms |
16108 KB |
Output is correct |
8 |
Correct |
6 ms |
16108 KB |
Output is correct |
9 |
Correct |
6 ms |
16108 KB |
Output is correct |
10 |
Correct |
5 ms |
16108 KB |
Output is correct |
11 |
Correct |
7 ms |
16108 KB |
Output is correct |
12 |
Correct |
5 ms |
16108 KB |
Output is correct |
13 |
Correct |
5 ms |
16108 KB |
Output is correct |
14 |
Correct |
5 ms |
16108 KB |
Output is correct |
15 |
Correct |
6 ms |
16108 KB |
Output is correct |
16 |
Correct |
5 ms |
16108 KB |
Output is correct |
17 |
Correct |
6 ms |
16108 KB |
Output is correct |
18 |
Correct |
116 ms |
16108 KB |
Output is correct |
19 |
Correct |
89 ms |
16108 KB |
Output is correct |
20 |
Correct |
93 ms |
16136 KB |
Output is correct |
21 |
Correct |
87 ms |
16136 KB |
Output is correct |
22 |
Correct |
83 ms |
16136 KB |
Output is correct |
23 |
Correct |
80 ms |
16136 KB |
Output is correct |
24 |
Correct |
74 ms |
16136 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
4216 KB |
Output is correct |
2 |
Correct |
5 ms |
4216 KB |
Output is correct |
3 |
Correct |
5 ms |
4384 KB |
Output is correct |
4 |
Correct |
7 ms |
4384 KB |
Output is correct |
5 |
Correct |
6 ms |
4384 KB |
Output is correct |
6 |
Correct |
6 ms |
4576 KB |
Output is correct |
7 |
Correct |
6 ms |
4576 KB |
Output is correct |
8 |
Correct |
7 ms |
4576 KB |
Output is correct |
9 |
Correct |
7 ms |
4576 KB |
Output is correct |
10 |
Correct |
6 ms |
4576 KB |
Output is correct |
11 |
Correct |
6 ms |
4576 KB |
Output is correct |
12 |
Correct |
6 ms |
4576 KB |
Output is correct |
13 |
Correct |
6 ms |
4576 KB |
Output is correct |
14 |
Correct |
6 ms |
4576 KB |
Output is correct |
15 |
Correct |
7 ms |
4576 KB |
Output is correct |
16 |
Correct |
6 ms |
4576 KB |
Output is correct |
17 |
Correct |
3 ms |
4576 KB |
Output is correct |
18 |
Correct |
2 ms |
4576 KB |
Output is correct |
19 |
Correct |
38 ms |
8520 KB |
Output is correct |
20 |
Incorrect |
43 ms |
9312 KB |
3rd lines differ - on the 1st token, expected: '41599604178272', found: '41586719276384' |
21 |
Halted |
0 ms |
0 KB |
- |