Submission #711605

#TimeUsernameProblemLanguageResultExecution timeMemory
711605penguinmanWiring (IOI17_wiring)C++17
7 / 100
28 ms5536 KiB
#include "wiring.h"

#include <bits/stdc++.h>

using std::cin;
using std::cout;
using std::vector;
using ll = long long;
using vi = vector<ll>;
using vii = vector<vi>;
using std::string;
using pii = std::pair<ll,ll>;

#define rep(i,j,k) for(ll i=ll(j); i<ll(k); i++)
#define REP(i,j,k) for(ll i=ll(j); i<=ll(k); i++)
#define per(i,j,k) for(ll i=ll(j); i>=ll(k); i--)
#define ln "\n"
#define all(a) a.begin(), a.end()
#define mp std::make_pair
#define pb emplace_back

constexpr ll inf = (1ll<<60);

long long min_total_length(std::vector<int> r, std::vector<int> b) {
	assert(r.size() <= 200 && b.size() <= 200);
	vector<pii> data;
	for(auto el: r) data.pb(mp(el,0));
	for(auto el: b) data.pb(mp(el,1));
	sort(all(data));
	ll N = r.size(), M = b.size();
	vii dp(N+1, vi(M+1, inf));
	dp[0][0] = 0;
	REP(i,1,N){
		REP(j,1,M){
			dp[i][j] = std::min({dp[i-1][j-1], dp[i][j-1],dp[i-1][j]})+std::abs(r[i-1]-b[j-1]);
		}
	}
	return dp[N][M];
}
#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...