Not a member of Pastebin yet?
                        Sign Up,
                        it unlocks many cool features!                    
                - #include <bits/stdc++.h>
 - #define pb push_back
 - #define ln(i,n) for(int i=0;i<n;i++)
 - #define lln(i,n) for(int i=1;i<=n;i++)
 - #define lm(j,m) for(int j=0;j<m;j++)
 - #define llm(i,m) for(int j=1;j<=m;j++)
 - #define lv(i, v) for (int i=0;i<adj[v].size();i++)
 - #define F first
 - #define S second
 - using namespace std;
 - const int MAX = 5e5 + 9;
 - const int MIN = 1009;
 - const int mod = 1e9 + 9;
 - const int MAXN = INT_MAX;
 - int dp[MIN][MIN];
 - int n, m;
 - int gcd (int a, int b) {
 - return b == 0 ? a : gcd (b, a % b);
 - }
 - int lcm (int a, int b) {
 - return a * b / gcd (a, b);
 - }
 - int main ()
 - {
 - int t;
 - cin >> t;
 - int j = 1;
 - while (t--)
 - {
 - scanf("%d%d", &n, &m);
 - for (int i = 1 ; i <= n ; i++)
 - for (int j = 1 ; j <= m ; j++)
 - scanf("%2d", &dp[i][j]);
 - for (int i = 2 ; i <= n ; i++)
 - dp[i][0] += dp[i - 1][0];
 - for (int i = 2 ; i <= m ; i++)
 - dp[0][i] += dp[0][i - 1];
 - for (int i = 1 ; i <= n ; i++) {
 - for (int j = 1 ; j <= m ; j++) {
 - dp[i][j] += max(dp[i - 1][j], dp[i][j - 1]);
 - }
 - }
 - cout << "Case " << j++ << ": " << dp[n][m] << endl ;
 - memset(dp, 0, sizeof(dp));
 - }
 - return 0;
 - }
 
Advertisement
 
                    Add Comment                
                
                        Please, Sign In to add comment