Untitled

 avatar
unknown
plain_text
a year ago
1.3 kB
1
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;
}
Leave a Comment