Advertisement
Guest User

Untitled

a guest
Jul 27th, 2016
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.15 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. long long 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 cc = 1;
  33.     while(t--) {
  34.         int n, m;
  35.         cin >> n >> m;
  36.         memset(dp, 0 ,sizeof(dp));
  37.         for (int i = 0 ; i < n ; i++)
  38.             for (int j = 0 ; j < m ; j++){
  39.                 long long x ;
  40.                 scanf("%lld", &x);
  41.                 dp[i][j] = x;
  42.             }
  43.         for (int i = 1 ; i < n ; i++)
  44.             dp[i][0] += dp[i - 1][0];
  45.         for (int i = 1 ; i < m ; i++)
  46.             dp[0][i] += dp[0][i - 1];
  47.         for (int i = 1 ; i < n ; i++)
  48.             for (int j = 1 ; j < m ; j++)
  49.                 dp[i][j] += max(dp[i - 1][j], dp[i][j - 1]);
  50.         cout << "Case " << cc++ << ": " << dp[n - 1][m - 1] << endl;
  51.     }
  52.     return 0 ;
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement