Submission #106223

# Submission time Handle Problem Language Result Execution time Memory
106223 2019-04-17T13:01:09 Z SecretAgent007 Wiring (IOI17_wiring) C++17
Compilation error
0 ms 0 KB
#include <bits/stdc++.h>
#include "wiring.h"

using namespace std;

#define int long long

vector< vector< int > > memo;

int dp(int n, int m, vector< int > red, vector< int > blue){
		
	if(n < 0 || m < 0){
		return INT_MAX;
	}
	
	if(n == 0 && m == 0){
		return memo[n][m] = abs(red[n]-blue[m]);
	}
	
	if(memo[n][m] != -1) return memo[n][m];
	
	return memo[n][m] = min(dp(n-1, m-1, red, blue), min(dp(n-1,m,red, blue), dp(n,m-1,red,blue))) + abs(red[n]-blue[m]);
	
}

#undef int
long long min_total_length (vector <int> red, vector <int> blue) {

#define int long long

	int n = red.size();
	int m = blue.size();
	
	if(n < 500 && m < 500){
	
		memo.resize(n, vector<int>(m));
		
		for(int i = 0; i < n; i++){
			for(int j = 0; j < m; j++){
				memo[i][j] = -1;
			}
		}
		
		return dp(n-1,m-1,red,blue); 
		
	}
	
	int tot = 0;
	
	int f = 0;
	int s = 0;
	
	while(f < n && s < m){
		tot += blue[s]-red[f];
		s++;
		f++;
	}
	
	while(f < n){
		tot += blue[0]-red[f];
		f++;
	}

	while(s < m){
		tot += blue[s]-red.back();
		s++;
	}

	return tot;

}
/*
signed main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	
	int n, m;
	
	cin >> n >> m;
	
	vector< int > red(n);
	vector< int > blue(m);
	
	for(int i = 0; i < n; i++){
		cin >> red[i];
	}
	for(int i = 0; i < m; i++){
		cin >> blue[i];
	}
	
	cout << min_total_length(red, blue) << endl;
}*/

Compilation message

wiring.cpp: In function 'long long int min_total_length(std::vector<int>, std::vector<int>)':
wiring.cpp:44:29: error: could not convert 'red' from 'std::vector<int>' to 'std::vector<long long int>'
   return dp(n-1,m-1,red,blue); 
                             ^