Little_hobbit

120 Минимальный путь в таблице - Динамика

Jul 8th, 2020
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.15 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. int main( )
  4. {
  5.     FILE *in = fopen("input.txt", "rt");
  6.     FILE *out = fopen("output.txt", "wt");
  7.  
  8.     if (in && out)
  9.     {
  10.         int n, m;
  11.         fscanf(in, "%d %d", &n, &m);
  12.         int matrix[n][m];
  13.  
  14.  
  15.         for (int i = 0; i < n; ++i)
  16.         {
  17.             for (int j = 0; j < m; ++j)
  18.             {
  19.                 fscanf(in, "%d", &matrix[i][j]);
  20.             }
  21.         }
  22.  
  23.         for (int i = 0; i < n; ++i)
  24.         {
  25.             for (int j = 0; j < m; ++j)
  26.             {
  27.                 if (i != 0 || j != 0)
  28.                 {
  29.                     if (j == 0)
  30.                     {
  31.                         matrix[i][j] += matrix[i - 1][j];
  32.                     }
  33.                     else if (i == 0)
  34.                     {
  35.                         matrix[i][j] += matrix[i][j - 1];
  36.                     }
  37.                     else
  38.                     {
  39.                         matrix[i][j] += (matrix[i - 1][j] < matrix[i][j - 1]) ? matrix[i - 1][j] : matrix[i][j - 1];
  40.                     }
  41.                 }
  42.             }
  43.         }
  44.  
  45.         fprintf(out, "%d", matrix[n - 1][m - 1]);
  46.     }
  47.     return 0;
  48. }
Add Comment
Please, Sign In to add comment