Guest User

Highway Bypass INOI

a guest
Dec 20th, 2016
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.07 KB | None | 0 0
  1. #include<iostream>
  2. #include<algorithm>
  3. #define modulo 20011
  4. using namespace std;
  5. int main()
  6. {
  7.     ios::sync_with_stdio(0);
  8.     cin.tie(0);
  9.     int R, C, d,**paths,**matrix;
  10.     cin >> R >> C >> d;
  11.     matrix = new int*[R + 1];
  12.     paths = new int*[R + 1];
  13.     for (int i = 0; i < R + 1; i++ )
  14.     {
  15.         matrix[i] = new int[C + 1];
  16.         paths[i] = new int[C + 1];
  17.     }
  18.     for (int i = 1; i < R + 1; i++)
  19.     {
  20.         paths[i][1] = 1;
  21.     }
  22.     for (int j = 1; j < C + 1; j++)
  23.     {
  24.         paths[1][j] = 1;
  25.     }
  26.     for (int i = 1; i < R + 1; i++)
  27.     {
  28.         for (int j = 1; j < C + 1; j++)
  29.         {
  30.             cin >> matrix[i][j];
  31.             if (matrix[i][j] == 0)
  32.             {
  33.                 paths[i][j] = 0;
  34.                 if (i == 1)
  35.                 {
  36.                     for (int k = j + 1; k < C + 1; k++)
  37.                         paths[1][k] = 0;
  38.                 }
  39.                 if (j == 1)
  40.                 {
  41.                     for (int z = i + 1; z < R + 1; z++)
  42.                         paths[z][1] = 0;
  43.                 }
  44.  
  45.             }
  46.         }
  47.     }
  48.     paths[1][1] = 1;
  49.     for (int i = 2; i < R + 1; i++)
  50.     {
  51.         for (int j = 2; j < C + 1; j++)
  52.         {
  53.             if (paths[i][j] != 0)
  54.             {
  55.                 paths[i][j] = (paths[i - 1][j]%modulo + paths[i][j - 1]%modulo)%modulo;
  56.             }
  57.         }
  58.     }
  59.     cout << paths[R][C];
  60. }
Add Comment
Please, Sign In to add comment