Untitled
unknown
plain_text
2 years ago
1.3 kB
7
Indexable
#include <iostream>
#include <vector>
using namespace std;
int minTimeToCompleteJobs(int n, int entryTime1, int entryTime2, int exitTime1, int exitTime2, vector<int>& processingTime1, vector<int>& processingTime2, vector<int>& transferTime12, vector<int>& transferTime21) {
vector<vector<int>> dp(2, vector<int>(n+1));
dp[0][1] = entryTime1 + processingTime1[0];
dp[1][1] = entryTime2 + processingTime2[0];
for (int i = 2; i <= n; i++) {
dp[0][i] = min(dp[0][i-1] + processingTime1[i-1], dp[1][i-1] + transferTime21[i-1] + processingTime1[i-1]);
dp[1][i] = min(dp[1][i-1] + processingTime2[i-1], dp[0][i-1] + transferTime12[i-1] + processingTime2[i-1]);
}
int minTime = min(dp[0][n] + exitTime1, dp[1][n] + exitTime2);
return minTime;
}
int main() {
int n = 3;
int entryTime1 = 2, entryTime2 = 1;
int exitTime1 = 3, exitTime2 = 4;
vector<int> processingTime1 = {5, 6, 7};
vector<int> processingTime2 = {4, 6, 5};
vector<int> transferTime12 = {2, 2};
vector<int> transferTime21 = {3, 4};
int minTime = minTimeToCompleteJobs(n, entryTime1, entryTime2, exitTime1, exitTime2, processingTime1, processingTime2, transferTime12, transferTime21);
cout<<minTime << endl;
return 0;
}
Editor is loading...
Leave a Comment