Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- using namespace std;
- //first method
- int MinCost(int C[][3],int r,int c){
- int MC[r+1][c+1]={0,0};
- MC[0][0]=C[0][0];
- for(int i=0;i<=r;i++){
- for(int j=0;j<=c;j++){
- if(MC[i][j]==0){
- int first,second,third;
- first=(i-1>=0)? MC[i-1][j]:INT_MAX;
- second=(j-1>=0)? MC[i][j-1]:INT_MAX;
- third=(i-1>=0 && j-1 >=0)? MC[i-1][j-1]:INT_MAX;
- MC[i][j]=C[i][j]+min(first,min(second,third));
- }
- }
- }
- return MC[r][c];
- }
- //second method from geeks for geeks
- int MinCost(int C[][3],int r,int c){
- int MC[r+1][c+1];
- MC[0][0]=C[0][0];
- for(int i=1;i<=r;i++)
- MC[i][0]=MC[i-1][0]+C[i][0];
- for(int i=1;i<=c;i++)
- MC[0][i]=MC[0][i-1]+C[0][i];
- for(int i=1;i<=r;i++){
- for(int j=1;j<=c;j++){
- MC[i][j]=min(MC[i-1][j-1], min(MC[i-1][j],MC[i][j-1]))+C[i][j];
- }
- }
- return MC[r][c];
- }
- int main(){
- int r=3,c=3;
- int C[r][3]={ {1,2,3},
- {4,8,2},
- {1,5,3}
- };
- cout<<MinCost(C,2,2);
- return 0;
- }
Add Comment
Please, Sign In to add comment