Submission #1245497

#TimeUsernameProblemLanguageResultExecution timeMemory
1245497omsincoconutWiring (IOI17_wiring)C++17
13 / 100
15 ms1864 KiB
#include "wiring.h"
#include <bits/stdc++.h>

using namespace std;
typedef long long ll;

ll min_total_length(vector<int> r, vector<int> b) {
    if (r.size() < b.size()) swap(r, b);
    int n = r.size(), m = b.size();
    
    ll ans = 0;
    for (int i = 0; i < m; i++) ans += abs(r[i]-b[i]);

    int ptr = 0;
    for (int i = m; i < n; i++) {
        while (ptr < m & b[ptr] < r[i]) ptr++;

        int val = 1e9;
        if (ptr > 0) val = min(val, abs(r[i]-b[ptr-1]));
        if (ptr < m) val = min(val, abs(r[i]-b[ptr]));
        ans += val;
    }

    return ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...