Submission #1257482

#TimeUsernameProblemLanguageResultExecution timeMemory
1257482ThylOneWiring (IOI17_wiring)C++20
0 / 100
0 ms328 KiB
#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 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...