#include "wiring.h"
#include <bits/stdc++.h>
using namespace std;
long long min_total_length(std::vector<int> r, std::vector<int> b) {
long long ans = 0;
vector<pair<int, bool>> boxes;
for(auto red:r)boxes.emplace_back(red,false);
for(auto blue:b)boxes.emplace_back(blue, true);
sort(boxes.begin(), boxes.end());
stack<pair<int,bool>> S;
int last[2] = {-1,-1};
for(int i = 0;i < boxes.size() ; i++){
last[boxes[i].second] = boxes[i].first;
if(S.empty()){
S.push(boxes[i]);
}else if(S.top().second != boxes[i].second){
ans += boxes[i].first - S.top().first;
S.pop();
}else{
S.push(boxes[i]);
}
}
while(!S.empty()){
ans += S.top().first - last[!S.top().second];
S.pop();
}
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |