Untitled
#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; }
Leave a Comment