#include <iostream>
#include <vector>
#include <bitset>
#include <queue>
#include <algorithm>
#include <stack>
#include <sstream>
#include <string>
using namespace std;
vector<vector<int> > dp;
vector<vector<vector<int> > > a;
int main(){
while(ws(cin)&&!cin.eof()){
string s;
int n,m;
cin>>s>>n>>m;
a.assign(n,vector<vector<int> >(m+1,vector<int>(m+1)));
dp.assign(n,vector<int>(m+1));
for(int floor=0;floor<n-1;floor++){
for(int hole1=1;hole1<=m;hole1++){
for(int hole2=1;hole2<=m;hole2++)
cin>>a[floor][hole1][hole2];
}
}
// for(int i=0;i<n;i++)
// for(int j=1;j<=m;j++)
// dp[i][j]=0;
for(int i=1;i<n;i++){
for(int j=1;j<=m;j++){
int cur=1e6;
for(int k=1;k<=m;k++)
cur=min(cur,dp[i-1][k]+a[i-1][k][j]);
dp[i][j]=cur;
}
}
int ans=1e6;
for(int i=1;i<=m;i++)
ans=min(ans,dp[n-1][i]);
ans+=2*(n-1);
cout<<s<<endl<<ans<<endl;
}
}
#include <vector>
#include <bitset>
#include <queue>
#include <algorithm>
#include <stack>
#include <sstream>
#include <string>
using namespace std;
vector<vector<int> > dp;
vector<vector<vector<int> > > a;
int main(){
while(ws(cin)&&!cin.eof()){
string s;
int n,m;
cin>>s>>n>>m;
a.assign(n,vector<vector<int> >(m+1,vector<int>(m+1)));
dp.assign(n,vector<int>(m+1));
for(int floor=0;floor<n-1;floor++){
for(int hole1=1;hole1<=m;hole1++){
for(int hole2=1;hole2<=m;hole2++)
cin>>a[floor][hole1][hole2];
}
}
// for(int i=0;i<n;i++)
// for(int j=1;j<=m;j++)
// dp[i][j]=0;
for(int i=1;i<n;i++){
for(int j=1;j<=m;j++){
int cur=1e6;
for(int k=1;k<=m;k++)
cur=min(cur,dp[i-1][k]+a[i-1][k][j]);
dp[i][j]=cur;
}
}
int ans=1e6;
for(int i=1;i<=m;i++)
ans=min(ans,dp[n-1][i]);
ans+=2*(n-1);
cout<<s<<endl<<ans<<endl;
}
}
Comments
Post a Comment