Friday, February 14, 2020

The colorful street

#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int main() {
int num;
cin >> num;
while(num--){
    int n;
    cin>>n;
   vector<int> a(n,0);
       vector<int> b(n,0);
           vector<int> c(n,0);
   for(int i=0;i<n;i++){
     cin>>a[i]>>b[i]>>c[i];
   
}
    vector<vector<int>>dp (3,vector<int>(n,0));
    dp[0][0]=a[0];
    dp[1][0]=b[0];
    dp[2][0]=c[0];
    
    for(int i=1;i<n;i++){
        dp[0][i]=a[i]+min(dp[1][i-1],dp[2][i-1]);
               dp[1][i]=b[i]+min(dp[0][i-1],dp[2][i-1]);
                      dp[2][i]=c[i]+min(dp[1][i-1],dp[0][i-1]);
        
        
    }
    cout<<min(dp[0][n-1],min(dp[1][n-1],dp[2][n-1]))<<endl;
    
}
}

No comments:

Post a Comment