Submission #220031

#TimeUsernameProblemLanguageResultExecution timeMemory
220031blacktulipWiring (IOI17_wiring)C++17
0 / 100
5 ms1152 KiB
#include "wiring.h" #include <cassert> #include <cstdio> #include <bits/stdc++.h> using namespace std; typedef long long lo; typedef pair< lo,lo > PII; #define fi first #define se second //~ #define int long long #define mp make_pair #define pb push_back #define fio() ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL) #define FOR for(int i=1;i<=n;i++) #define mid ((start+end)/2) #define ort ((bas+son)/2) const lo MAX = -1000000000000000000; const lo MIN = 1000000000000000000; const lo inf = 100000000000000000; const lo KOK = 100000; const lo LOG = 30; const lo li = 100005; const lo mod = 1000000007; lo n,m,b[li],a[li],k,flag,t,dp[li]; lo cev; string s; vector<int> v; queue<PII> q; inline lo f(lo x,lo y,vector<int> r1,vector<int> r2){ lo cevv=inf; if(x>=(int)r1.size()){ if(y==(int)r2.size())return 0; return inf; } if(y>=(int)r2.size()){ if(x==(int)r1.size())return 0; return inf; } if(~dp[x])return dp[x]; cevv=min(cevv,f(x+1,y+1,r1,r2)+abs(r2[y]-r1[x])); //~ cevv=min(cevv,f(x+1,y,r1,r2)+abs(r2[y]-r1[x])); cevv=min(cevv,f(x,y+1,r1,r2)+abs(r2[y]-r1[x])); return dp[x]=cevv; } long long min_total_length(vector<int> r, vector<int> b) { vector<int> &vv=r; vector<int> &vv1=b; memset(dp,-1,sizeof(dp)); //~ lo at=0,bt=0; if(vv.size()>vv1.size())swap(vv,vv1); cev=f(0,0,vv,vv1); return cev; }
#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...