#include<bits/stdc++.h>
using namespace std;
long long solve(int n, int k, vector<int> &W, vector<int> &L, vector<int> &S) {
const long long INF = 1e18;
// dp[j] current station tak kam khatam, aur jo handler free baitha hai wo j station pe hai.
vector<long long> dp(n + 1, INF);
// base case phela station pe kaam shuru hoga
dp[0] = L[W[0]-1];
for(int i = 1; i < n; i++) {
long long nxt = INF;
int curr = W[i]-1;
int prev = W[i-1]-1;
long long temp = (curr == prev) ? S[curr] : L[curr];
for(int j = 0; j < i; j++) {
if (dp[j] == INF) continue;
//case 2
int old = (j == 0) ? -1 : W[j-1]-1;
long long other = (old == curr) ? S[curr] : L[curr];
nxt = min(nxt, dp[j] + other);
//case 1
dp[j] += temp;
}
dp[i] = nxt;
}
return *min_element(dp.begin(), dp.begin() + n);
}
int main() {
int n = 3, k = 2;
vector<int> W = {1, 2, 2}, L = {4, 5}, S = {2, 3};
cout << "Min Time: " << solve(n, k, W, L, S) << endl;
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmxvbmcgbG9uZyBzb2x2ZShpbnQgbiwgaW50IGssIHZlY3RvcjxpbnQ+ICZXLCB2ZWN0b3I8aW50PiAmTCwgdmVjdG9yPGludD4gJlMpIHsKICAgIGNvbnN0IGxvbmcgbG9uZyBJTkYgPSAxZTE4OwogICAgLy8gZHBbal0gY3VycmVudCBzdGF0aW9uIHRhayBrYW0ga2hhdGFtLCBhdXIgam8gaGFuZGxlciBmcmVlIGJhaXRoYSBoYWkgd28gaiBzdGF0aW9uIHBlIGhhaS4KICAgIHZlY3Rvcjxsb25nIGxvbmc+IGRwKG4gKyAxLCBJTkYpOyAKICAgIAogICAgLy8gYmFzZSBjYXNlIHBoZWxhIHN0YXRpb24gcGUga2FhbSBzaHVydSBob2dhIAogICAgZHBbMF0gPSBMW1dbMF0tMV07IAoKICAgIGZvcihpbnQgaSA9IDE7IGkgPCBuOyBpKyspIHsKICAgICAgICBsb25nIGxvbmcgbnh0ID0gSU5GOyAKICAgICAgICBpbnQgY3VyciA9IFdbaV0tMTsKICAgICAgICBpbnQgcHJldiA9IFdbaS0xXS0xOwogICAgCiAgICAgICAgbG9uZyBsb25nIHRlbXAgPSAoY3VyciA9PSBwcmV2KSA/IFNbY3Vycl0gOiBMW2N1cnJdOwoKICAgICAgICBmb3IoaW50IGogPSAwOyBqIDwgaTsgaisrKSB7CiAgICAgICAgICAgIGlmIChkcFtqXSA9PSBJTkYpIGNvbnRpbnVlOyAKCiAgICAgICAgICAgIC8vY2FzZSAyCiAgICAgICAgICAgIGludCBvbGQgPSAoaiA9PSAwKSA/IC0xIDogV1tqLTFdLTE7IAogICAgICAgICAgICBsb25nIGxvbmcgb3RoZXIgPSAob2xkID09IGN1cnIpID8gU1tjdXJyXSA6IExbY3Vycl07CiAgICAgICAgICAgIAogICAgICAgICAgICBueHQgPSBtaW4obnh0LCBkcFtqXSArIG90aGVyKTsKCiAgICAgICAgICAgIC8vY2FzZSAxCiAgICAgICAgICAgIGRwW2pdICs9IHRlbXA7IAogICAgICAgIH0KICAgICAgICBkcFtpXSA9IG54dDsKICAgIH0KCiAgICByZXR1cm4gKm1pbl9lbGVtZW50KGRwLmJlZ2luKCksIGRwLmJlZ2luKCkgKyBuKTsKfQoKaW50IG1haW4oKSB7CiAgICBpbnQgbiA9IDMsIGsgPSAyOwogICAgdmVjdG9yPGludD4gVyA9IHsxLCAyLCAyfSwgTCA9IHs0LCA1fSwgUyA9IHsyLCAzfTsKICAgIGNvdXQgPDwgIk1pbiBUaW1lOiAiIDw8IHNvbHZlKG4sIGssIFcsIEwsIFMpIDw8IGVuZGw7CiAgICByZXR1cm4gMDsKfQ==