# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
42829 |
2018-03-04T17:52:48 Z |
nonocut |
Wiring (IOI17_wiring) |
C++14 |
|
1000 ms |
17164 KB |
#include "wiring.h"
#include<bits/stdc++.h>
using namespace std;
#define vi vector<int>
#define ll long long
const int maxn = 2e5 + 5;
const ll inf = 1e9;
int n,m,sz;
int pos[maxn];
ll num[maxn], sum[maxn];
ll dp[maxn];
map<int,int> id;
ll get(int l1, int r1, int l2, int r2) {
ll res = (sum[r2]-sum[l2-1]) - (sum[r1]-sum[l1-1]);
res += max(0LL,(num[r2]-num[l2-1])-(num[r1]-num[l1-1]))*(-(sum[r1]-sum[r1-1]));
res += max(0LL,(num[r1]-num[l1-1])-(num[r2]-num[l2-1]))*(sum[l2]-sum[l2-1]);
// printf("----- get (%d, %d) (%d, %d) = %lld\n",l1,r1,l2,r2,res);
return res;
}
void cpidx(vi a, vi b) {
for(auto x : a) id[x];
for(auto x : b) id[x];
for(auto &t : id) t.second = ++sz;
}
ll min_total_length(vi a, vi b) {
n = a.size(); m = b.size();
cpidx(a,b);
for(auto x : a) pos[id[x]] = 0, num[id[x]] = 1, sum[id[x]] = x;
for(auto x : b) pos[id[x]] = 1, num[id[x]] = 1, sum[id[x]] = x;
for(int i=1;i<=sz;i++) num[i] += num[i-1], sum[i] += sum[i-1];
for(int x=sz;x>=1;x--) {
dp[x] = inf;
int i = -1;
ll cur = dp[x+1];
for(int y=x+1;y<=sz;y++) {
// printf("\tx = %d y = %d\n",x,y);
if(pos[y]!=pos[y-1]) {
if(i==-1) i = y;
else break;
}
cur = min(cur, dp[y+1]);
if(i!=-1) {
dp[x] = min(dp[x], get(x,i-1,i,y) + cur);
}
}
// printf("dp %d = %lld\n",x,dp[x]);
}
return dp[1];
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
248 KB |
Output is correct |
2 |
Correct |
1 ms |
352 KB |
Output is correct |
3 |
Correct |
2 ms |
424 KB |
Output is correct |
4 |
Correct |
1 ms |
532 KB |
Output is correct |
5 |
Correct |
2 ms |
656 KB |
Output is correct |
6 |
Correct |
1 ms |
656 KB |
Output is correct |
7 |
Correct |
2 ms |
700 KB |
Output is correct |
8 |
Correct |
2 ms |
736 KB |
Output is correct |
9 |
Correct |
2 ms |
740 KB |
Output is correct |
10 |
Correct |
2 ms |
744 KB |
Output is correct |
11 |
Correct |
2 ms |
748 KB |
Output is correct |
12 |
Correct |
2 ms |
752 KB |
Output is correct |
13 |
Correct |
2 ms |
828 KB |
Output is correct |
14 |
Correct |
2 ms |
832 KB |
Output is correct |
15 |
Correct |
2 ms |
840 KB |
Output is correct |
16 |
Correct |
2 ms |
840 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
840 KB |
Output is correct |
2 |
Correct |
2 ms |
840 KB |
Output is correct |
3 |
Execution timed out |
1065 ms |
12400 KB |
Time limit exceeded |
4 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
12400 KB |
Output is correct |
2 |
Correct |
2 ms |
12400 KB |
Output is correct |
3 |
Incorrect |
181 ms |
17164 KB |
3rd lines differ - on the 1st token, expected: '1068938599', found: '1000000000' |
4 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
17164 KB |
Output is correct |
2 |
Execution timed out |
1071 ms |
17164 KB |
Time limit exceeded |
3 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
248 KB |
Output is correct |
2 |
Correct |
1 ms |
352 KB |
Output is correct |
3 |
Correct |
2 ms |
424 KB |
Output is correct |
4 |
Correct |
1 ms |
532 KB |
Output is correct |
5 |
Correct |
2 ms |
656 KB |
Output is correct |
6 |
Correct |
1 ms |
656 KB |
Output is correct |
7 |
Correct |
2 ms |
700 KB |
Output is correct |
8 |
Correct |
2 ms |
736 KB |
Output is correct |
9 |
Correct |
2 ms |
740 KB |
Output is correct |
10 |
Correct |
2 ms |
744 KB |
Output is correct |
11 |
Correct |
2 ms |
748 KB |
Output is correct |
12 |
Correct |
2 ms |
752 KB |
Output is correct |
13 |
Correct |
2 ms |
828 KB |
Output is correct |
14 |
Correct |
2 ms |
832 KB |
Output is correct |
15 |
Correct |
2 ms |
840 KB |
Output is correct |
16 |
Correct |
2 ms |
840 KB |
Output is correct |
17 |
Correct |
1 ms |
840 KB |
Output is correct |
18 |
Correct |
2 ms |
840 KB |
Output is correct |
19 |
Execution timed out |
1065 ms |
12400 KB |
Time limit exceeded |
20 |
Halted |
0 ms |
0 KB |
- |