fork download
  1. #include <bits/stdc++.h>
  2.  
  3. #define FOR(i, a, b) for (int i = a; i <= b; ++i)
  4. #define FORD(i, a, b) for (int i = a; i >= b; --i)
  5. #define ll long long
  6.  
  7. using namespace std;
  8.  
  9. const int N = 2207 + 5;
  10. const ll mod = 998244353;
  11. int a[N][N], n, m;
  12. ll dp[N][N], cnt[N][N];
  13.  
  14. void nhap() {
  15. cin >> n >> m;
  16. FOR(i, 1, n) FOR(j, 1, m) {
  17. char x; cin >> x;
  18. a[i][j] = x - '0';
  19. }
  20. }
  21.  
  22. void giai() {
  23. cnt[0][0] = 1;
  24. FOR(i, 1, n) FOR(j, 1, m) {
  25. cnt[i][j] = (cnt[i - 1][j] + cnt[i][j - 1] + cnt[i - 1][j - 1]) % mod;
  26. dp[i][j] = (dp[i - 1][j] + dp[i][j - 1] + dp[i - 1][j - 1] + a[i][j] * cnt[i][j]) % mod;
  27. }
  28.  
  29. cout << dp[n][m];
  30. }
  31.  
  32. int main() {
  33. ios_base::sync_with_stdio(0);
  34. cin.tie(0); cout.tie(0);
  35.  
  36. #define name "sumpath"
  37. if (fopen(name".inp", "r")) {
  38. freopen(name".inp", "r", stdin);
  39. freopen(name".out", "w", stdout);
  40. }
  41.  
  42. nhap();
  43. giai();
  44. return 0;
  45. }
  46.  
Success #stdin #stdout 0.01s 5716KB
stdin
Standard input is empty
stdout
Standard output is empty