Submission #505165

#TimeUsernameProblemLanguageResultExecution timeMemory
505165HanksburgerWiring (IOI17_wiring)C++17
0 / 100
0 ms332 KiB
#include <bits/stdc++.h>
using namespace std;
long long dp[205][205];
long long min_total_length(vector<int> r, vector<int> b)
{
	long long n=r.size(), m=b.size();
	if (n<=200 && m<=200)
	{
		for (long long i=0; i<n; i++)
			for (long long j=0; j<m; j++)
				dp[i+1][j+1]=min(min(dp[i+1][j], dp[i][j+1]), dp[i][j])+abs(r[i]-b[j]);
		return dp[n][m];
	}
	else if (r[n-1]<b[0])
	{
		long long ans=0;
		for (long long i=0; i<min(n, m); i++)
			ans+=b[m-i-1]-r[i];
		if (n<=m)
			for (long long i=m-n-1; i>=0; i--)
				ans+=b[i]-r[n-1];
		else
			for (long long i=m; i<n; i++)
				ans+=b[0]-r[i];
		return ans;
	}
}

Compilation message (stderr)

wiring.cpp: In function 'long long int min_total_length(std::vector<int>, std::vector<int>)':
wiring.cpp:27:1: warning: control reaches end of non-void function [-Wreturn-type]
   27 | }
      | ^
#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...