Submission #282447

#TimeUsernameProblemLanguageResultExecution timeMemory
282447MohamedAhmed04Wiring (IOI17_wiring)C++14
7 / 100
37 ms5368 KiB
#include <bits/stdc++.h> #include "wiring.h" //#include "grader.cpp" using namespace std ; const int MAX = 210 ; long long dp[MAX][MAX][2] ; int n , m ; vector<int>A , B ; long long solve(int idx , int idx2 , bool flag) { if(idx == n) { if(idx2 != m) return 1e18 ; else return 0 ; } long long &ret = dp[idx][idx2][flag] ; if(ret != -1) return ret ; ret = 1e18 ; if(flag) ret = solve(idx+1 , idx2 , 0) ; if(idx2 != m) ret = min(ret , solve(idx , idx2 + 1 , 1) + abs(A[idx] - B[idx2])) ; if(idx2 != 0) ret = min(ret , solve(idx , idx2 , 1) + abs(A[idx] - B[idx2-1])) ; return ret ; } long long min_total_length(std::vector<int> r, std::vector<int> b) { memset(dp , -1 , sizeof(dp)) ; A = r , B = b ; n = A.size() , m = B.size() ; return solve(0 , 0 , 0) ; }
#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...