Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #include <iostream>
- using namespace std;
- ifstream fin("lacusta.in");
- ofstream fout("lacusta.out");
- const int NMAX = 255;
- const int MMAX = 255;
- const int INF = 2000000000;
- int T[NMAX][MMAX], V[NMAX][MMAX];
- int N, M;
- int main() {
- fin >> N >> M;
- for (int i = 1; i <= N; i++) {
- for (int j = 1; j <= M; j++) {
- fin >> T[i][j];
- }
- }
- for (int i= 1; i <= N; i++) {
- for (int j = 1; j <= M; j++) {
- V[i][j] = INF;
- }
- }
- for (int i = 2; i <= M; i++) {
- V[1][i] = T[1][1] + T[1][i];
- }
- for (int i = 2; i <= M; i++) {
- V[2][i] = T[2][i] + V[1][i];
- }
- for (int i = 3; i <= N; i++) {
- for (int j = 1; j <= M; j++) {
- for (int k = 1; k <= M; k++) {
- if (k != j) {
- V[i][k] = min(V[i][k], T[i][k] + T[i - 1][k] + V[i - 1][j]);
- }
- }
- }
- }
- V[N][M] = INF;
- for (int i = 1; i < M; i++) {
- V[N][M] = min(V[N][M], V[N][i] + T[N][M]);
- }
- fout << V[N][M] << " ";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment