Submission #1022947

#TimeUsernameProblemLanguageResultExecution timeMemory
1022947hirayuu_ojWiring (IOI17_wiring)C++17
13 / 100
34 ms1984 KiB
#include "wiring.h"
#include<bits/stdc++.h>
using namespace std;
#define rep(i,n) for(int i=0; i<(n); i++)
using ll=long long;

long long min_total_length(std::vector<int> r, std::vector<int> b) {
	if(r.size()<=1000&&b.size()<=1000){
		if(r.size()<b.size())swap(r,b);
		int n=r.size();
		int m=b.size();
		vector<ll> dp(m,1LL<<60);
		dp[0]=abs(r[0]-b[0]);
		for(int i=1; i<n; i++){
			vector<ll> ndp(m,1LL<<60);
			rep(j,m){
				rep(k,j+1)ndp[j]=min(ndp[j],dp[j]+abs(r[i]-b[k]));
				if(j!=0)ndp[j]=min(ndp[j],dp[j-1]+abs(r[i]-b[j]));
			}
			swap(dp,ndp);
		}
		return dp[m-1];
	}
	else{
		ll ans=0;
		rep(i,max(b.size(),r.size())){
			ans+=abs(r[min((int)r.size()-1,i)]-b[max(0,(int)b.size()-1-i)]);
		}
		return ans;
	}
}

Compilation message (stderr)

wiring.cpp: In function 'long long int min_total_length(std::vector<int>, std::vector<int>)':
wiring.cpp:4:32: warning: comparison of integer expressions of different signedness: 'int' and 'const long unsigned int' [-Wsign-compare]
    4 | #define rep(i,n) for(int i=0; i<(n); i++)
      |                                ^
wiring.cpp:26:3: note: in expansion of macro 'rep'
   26 |   rep(i,max(b.size(),r.size())){
      |   ^~~
#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...