fork(1) download
  1. #include <bits/stdc++.h>
  2. #include <ext/pb_ds/assoc_container.hpp>
  3. #include <ext/pb_ds/tree_policy.hpp>
  4.  
  5. using namespace std;
  6. using namespace __gnu_pbds;
  7.  
  8. #define fi first
  9. #define se second
  10. #define mp make_pair
  11. #define pb push_back
  12. #define fbo find_by_order
  13. #define ook order_of_key
  14.  
  15. typedef long long ll;
  16. typedef pair<int,int> ii;
  17. typedef vector<int> vi;
  18. typedef long double ld;
  19. typedef tree<int, null_type, less<int>, rb_tree_tag, tree_order_statistics_node_update> pbds;
  20. typedef set<int>::iterator sit;
  21. typedef map<int,int>::iterator mit;
  22. typedef vector<int>::iterator vit;
  23.  
  24. char a[101][101];
  25. ll dp[2][101][101];
  26. const int MOD = 1e9 + 7;
  27. int dx[4] = {1, -1, 0, 0};
  28. int dy[4] = {0, 0, 1, -1};
  29. int n, m;
  30.  
  31. bool isvalid(int x, int y)
  32. {
  33. if(x>=0&&x<n&&y>=0&&y<m) return true;
  34. return false;
  35. }
  36.  
  37. int main()
  38. {
  39. ios_base::sync_with_stdio(0); cin.tie(0);
  40. int x, y, times;
  41. cin>>n>>m>>times;
  42. for(int i = 0; i < n; i++)
  43. {
  44. for(int j = 0; j < m; j++)
  45. {
  46. cin >> a[i][j];
  47. if(a[i][j] == 'R')
  48. {
  49. x = i; y = j;
  50. }
  51. }
  52. }
  53. dp[0][x][y] = 1;
  54. for(int i = 1; i <= times; i++)
  55. {
  56. int cur = (i&1); int prev = (cur^1);
  57. for(int j = 0; j < n; j++)
  58. {
  59. for(int k = 0; k < m; k++)
  60. {
  61. dp[cur][j][k] = 0;
  62. }
  63. }
  64. for(int j = 0; j < n; j++)
  65. {
  66. for(int k = 0; k < m; k++)
  67. {
  68. for(int l = 0; l < 4; l++)
  69. {
  70. int xx = j + dx[l]; int yy = k + dy[l];
  71. if(isvalid(xx,yy))
  72. {
  73. if(a[j][k]!='#')
  74. {
  75. dp[cur][j][k] = (dp[cur][j][k] + dp[prev][xx][yy])%MOD;
  76. }
  77. }
  78. }
  79. }
  80. }
  81. }
  82. for(int i = 0; i < n; i++)
  83. {
  84. for(int j = 0; j < m; j++)
  85. {
  86. cout << dp[times&1][i][j] << ' ';
  87. }
  88. cout << '\n';
  89. }
  90. }
  91.  
Success #stdin #stdout 0s 16232KB
stdin
Standard input is empty
stdout
Standard output is empty