Interview Question
Country: India
#include<bits/stdc++.h>
using namespace std;
int arr[1005][1005];
int mem[1005][1005][2];
int turn[1005][1005];
int main()
{
freopen("out.txt","w",stdout);
freopen("in.txt","r",stdin);
int n,m;
cin>>n>>m;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
cin>>arr[i][j];
}
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
int x;
cin>>turn[i][j];
}
turn[n-1][m-1]=0;
mem[0][0][0]=arr[0][0];
mem[0][0][1]=arr[0][0];
for(int i=1;i<m;i++)
{
mem[0][i][0]=arr[0][i]+mem[0][i-1][0];
mem[0][i][1]=arr[0][i]+mem[0][i-1][0]+turn[0][i];
}
for(int i=1;i<n;i++)
{
mem[i][0][0]=arr[i][0]+mem[i-1][0][1]+turn[i][0];
mem[i][0][1]=arr[i][0]+mem[i-1][0][1];
}
for(int i=1;i<n;i++)
for(int j=1;j<m;j++)
{
mem[i][j][0]=arr[i][j]+min(mem[i-1][j][1]+turn[i][j],mem[i][j-1][0]);
mem[i][j][1]=arr[i][j]+min(mem[i-1][j][1],mem[i][j-1][0]+turn[i][j]);
}
cout<<mem[n-1][m-1][1];
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int arr[1005][1005];
int mem[1005][1005][2];
int turn[1005][1005];
int main()
{
freopen("out.txt","w",stdout);
freopen("in.txt","r",stdin);
int n,m;
cin>>n>>m;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
cin>>arr[i][j];
}
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
int x;
cin>>turn[i][j];
}
turn[n-1][m-1]=0;
mem[0][0][0]=arr[0][0];
mem[0][0][1]=arr[0][0];
for(int i=1;i<m;i++)
{
mem[0][i][0]=arr[0][i]+mem[0][i-1][0];
mem[0][i][1]=arr[0][i]+mem[0][i-1][0]+turn[0][i];
}
for(int i=1;i<n;i++)
{
mem[i][0][0]=arr[i][0]+mem[i-1][0][1]+turn[i][0];
mem[i][0][1]=arr[i][0]+mem[i-1][0][1];
}
for(int i=1;i<n;i++)
for(int j=1;j<m;j++)
{
mem[i][j][0]=arr[i][j]+min(mem[i-1][j][1]+turn[i][j],mem[i][j-1][0]);
mem[i][j][1]=arr[i][j]+min(mem[i-1][j][1],mem[i][j-1][0]+turn[i][j]);
}
cout<<mem[n-1][m-1][1];
return 0;
}
- Chris December 10, 2016