Little_hobbit

165 Только вправо или вниз - Динамика

Jul 8th, 2020
232
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.96 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.  
  13.         int arr[n][m], mat[n][m];
  14.  
  15.         for (int i = 0; i < n; ++i)
  16.         {
  17.             for (int j = 0; j < m; ++j)
  18.             {
  19.                 fscanf(in, "%d", &arr[i][j]);
  20.                 mat[i][j] = 0;
  21.             }
  22.         }
  23.         mat[0][0] = 1;
  24.  
  25.         for (int i = 0; i < n; ++i)
  26.         {
  27.             for (int j = 0; j < m; ++j)
  28.             {
  29.                 if (mat[i][j] && arr[i][j])
  30.                 {
  31.                     if (j + arr[i][j] < m)
  32.                         mat[i][j + arr[i][j]] += mat[i][j];
  33.                     if (i + arr[i][j] < n)
  34.                         mat[i + arr[i][j]][j] += mat[i][j];
  35.                 }
  36.             }
  37.         }
  38.        
  39.         fprintf(out, "%d", mat[n-1][m-1]);
  40.     }
  41.     return 0;
  42. }
Advertisement
Add Comment
Please, Sign In to add comment