fork download
  1. /*
  2. وَلَا تُخْزِنِي يَوْمَ يُبْعَثُونَ•يَوْمَ لَا يَنفَعُ مَالٌ وَلَا بَنُونَ•إِلَّا مَنْ أَتَى اللَّهَ بِقَلْبٍ سَلِيم❤
  3. */
  4. #include <bits/stdc++.h>
  5. #define ll long long
  6. #define el endl
  7. using namespace std;
  8. void saf_sofa()
  9. {
  10. if (fopen("in.txt", "r"))
  11. {
  12. freopen("in.txt", "r", stdin);
  13. freopen("out.txt", "w", stdout);
  14. }
  15. ios_base::sync_with_stdio(false);
  16. cin.tie(NULL);
  17. }
  18. int dx[] = { 0, 0, 1, -1, 1, 1, -1, -1 };
  19. int dy[] = { -1, 1, 0, 0, -1, 1, 1, -1 };
  20. const int N=1001,mod=1e9+7;
  21. char dp[N][N],arr[N][N];
  22. int n;
  23. int DP(int i, int j)
  24. {
  25. if (arr[i][j] == '*' || i >= n || j >= n)
  26. return 0;
  27. if (i == n - 1 && j == n - 1)
  28. return 1;
  29. if (~dp[i][j])
  30. return dp[i][j];
  31.  
  32. int ch1 = DP(i + 1, j);
  33. int ch2 = DP(i, j + 1);
  34. int ans = (ch1 + ch2) % mod;
  35. dp[i][j] = ans;
  36. return dp[i][j];
  37. }
  38. void solve()
  39. {
  40. }
  41. int main()
  42. {
  43. saf_sofa();
  44. int t_ = 1;
  45. // cin >> t_;
  46. while (t_--)
  47. {
  48.  
  49. cin >> n;
  50. for(int i=0;i<n;i++){
  51. for(int j=0;j<n;j++){
  52. cin>>arr[i][j];
  53. }
  54. }
  55. memset(dp, -1, sizeof dp);
  56. // solve();
  57. cout << DP(0 ,0);
  58. }
  59. }
  60. /*
  61.  
  62. وَليتَ الذي بَيني وبينَك عامِرٌ وبَيني وبَينَ العَـٰالمينَ خرَابُ
  63.  
  64. */
Success #stdin #stdout 0.01s 5324KB
stdin
4
....
.*..
...*
*...
stdout
3