Advertisement
nicuvlad76

Untitled

Jan 15th, 2023
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.51 KB | None | 0 0
  1. #include <fstream>
  2. #define NMAX 101
  3.  
  4. using namespace std;
  5.  
  6. ifstream fin("lacusta.in");
  7. ofstream fout("lacusta.out");
  8.  
  9. int main()
  10. {
  11. unsigned A[NMAX][NMAX], B[NMAX][NMAX], m, n, min1, min2, jmin;
  12. fin>>m>>n;
  13. for(int i=0; i<m; ++i)
  14. {
  15. for(int j=0; j<n; ++j)
  16. {
  17. fin>>A[i][j];
  18. }
  19. }
  20. B[1][0]=unsigned(-1);
  21. for(int i=1; i<n; ++i)
  22. {
  23. B[1][i]=A[0][0]+A[0][i]+A[1][i];
  24. }
  25. for(int i=1; i<m-1; ++i)
  26. {
  27. if(B[i][0]<=B[i][1])
  28. {
  29. min1=B[i][0];
  30. min2=B[i][1];
  31. jmin=0;
  32. }
  33. else
  34. {
  35. min1=B[i][1];
  36. min2=B[i][0];
  37. jmin=1;
  38. }
  39. for(int j=2; j<n; ++j)
  40. {
  41. if(B[i][j]<min1)
  42. {
  43. min2=min1;
  44. min1=B[i][j];
  45. jmin=j;
  46. }
  47. else
  48. {
  49. if(B[i][j]<min2)
  50. {
  51. min2=B[i][j];
  52. }
  53. }
  54. }
  55. for(int j=0; j<n; ++j)
  56. {
  57. if(j!=jmin)
  58. {
  59. B[i+1][j]=min1+A[i][j]+A[i+1][j];
  60. }
  61. else
  62. {
  63. B[i+1][j]=min2+A[i][j]+A[i+1][j];
  64. }
  65. }
  66. }
  67. min1=B[m-1][0];
  68. for(int j=1; j<n; ++j)
  69. {
  70. if(B[m-1][j]<min1)
  71. {
  72. min1=B[m-1][j];
  73. }
  74. }
  75. fout<<min1+A[m-1][n-1]<<'\n';
  76. return 0;
  77. }
  78.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement