Advertisement
Guest User

Untitled

a guest
Feb 24th, 2020
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.48 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define MAX 1000007
  3. using namespace std;
  4. ifstream fin("lacusta.in");
  5. ofstream fout("lacusta.out");
  6. int n,m,i,j,v[107][107],d[107][107],p,u[107];
  7. int main()
  8. {
  9. ios::sync_with_stdio(false);
  10. fin >> n >> m;
  11. for(i = 1; i <= n; i++)
  12. for(j = 1; j <= m; j++)
  13. {
  14. fin >> v[i][j];
  15. d[i][j] = MAX;
  16. }
  17. d[1][1] = v[1][1];
  18. d[2][1] = v[2][1];
  19. for(i = 2; i <= m; i++)
  20. {
  21. d[1][i] = d[1][1]+v[1][i];
  22. d[2][i] = v[2][i]+d[1][i];
  23. }
  24. for(i = 2; i <= n; i++)
  25. {
  26. for(j = 1; j <= m; j++)
  27. u[j] = MAX;
  28. for(j = m; j >= 1; j--)
  29. {
  30. if(i%2 == 0)
  31. {
  32. for(p = m; p >= 2; p--)
  33. if(p != j)
  34. u[p] = min(u[p],d[i][j]+v[i][p]);
  35. }
  36. else
  37. {
  38. for(p = 2; p <= m; p++)
  39. if(p != j)
  40. u[p] = min(u[p],d[i-1][j]+v[i][p]);
  41. }
  42. }
  43. if(u[1] == MAX)
  44. u[1] = d[i][1];
  45. if(u[m] == MAX)
  46. u[m] = d[i][m];
  47. for(j = 1; j <= m; j++)
  48. {
  49. d[i][p] = u[p];
  50. if(i != n)
  51. d[i+1][j] = d[i][j]+v[i+1][j];
  52. }
  53. }
  54. for(i = 1; i <= n; i++)
  55. {
  56. for(j = 1; j <= m; j++)
  57. cout << d[i][j] << " ";
  58. cout << "\n";
  59. }
  60. fout << d[n][m];
  61. return 0;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement