Advertisement
Guest User

Untitled

a guest
Jul 26th, 2016
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.11 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define pb push_back
  3. #define ln(i,n) for(int i=0;i<n;i++)
  4. #define lln(i,n) for(int i=1;i<=n;i++)
  5. #define lm(j,m) for(int j=0;j<m;j++)
  6. #define llm(i,m) for(int j=1;j<=m;j++)
  7. #define lv(i, v) for (int i=0;i<adj[v].size();i++)
  8. #define F first
  9. #define S second
  10.  
  11. using namespace std;
  12. const int MAX = 5e5 + 9;
  13. const int MIN = 1009;
  14. const int mod = 1e9 + 9;
  15. const int MAXN = INT_MAX;
  16.  
  17. int dp[MIN][MIN];
  18. int n, m;
  19.  
  20. int gcd (int a, int b) {
  21.     return b == 0 ? a : gcd (b, a % b);
  22. }
  23.  
  24. int lcm (int a, int b) {
  25.     return a * b / gcd (a, b);
  26. }
  27.  
  28. int main ()
  29. {
  30.     int t;
  31.     cin >> t;
  32.     int j = 1;
  33.     while (t--)
  34.     {
  35.         scanf("%d%d", &n, &m);
  36.         for (int i = 1 ; i <= n ; i++)
  37.             for (int j = 1 ; j <= m ; j++)
  38.                 scanf("%2d", &dp[i][j]);
  39.         for (int i = 2 ; i <= n ; i++)
  40.             dp[i][0] += dp[i - 1][0];
  41.         for (int i = 2 ; i <= m ; i++)
  42.             dp[0][i] += dp[0][i - 1];
  43.         for (int i = 1 ; i <= n ; i++) {
  44.             for (int j = 1 ; j <= m ; j++) {
  45.                 dp[i][j] += max(dp[i - 1][j], dp[i][j - 1]);
  46.             }
  47.         }
  48.         cout << "Case " << j++ << ": " << dp[n][m] << endl ;
  49.         memset(dp, 0, sizeof(dp));
  50.     }
  51.     return 0;
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement