Advertisement
Shiam7777777

Untitled

Mar 27th, 2019
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.24 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define fast ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
  4. #define ll long long
  5. #define ld double
  6. #define llu long long unsigned
  7.  
  8. #define inf 1 << 28
  9. int mat[100][100];
  10. int dp[100][100];
  11. int r = 3, c = 3;
  12. int call(int i, int j)
  13. {
  14.     if (i >= 0 && i < r and j >= 0 and j < c)
  15.     {
  16.         if (dp[i][j] != -1)
  17.             return dp[i][j];
  18.         int ret = -inf;
  19.  
  20.         ret = max(ret, call(i , j+1) + mat[i][j]);
  21.         ret = max(ret, call(i + 1, j) + mat[i][j]);
  22.         ret = max(ret, call(i + 1, j + 1) + mat[i][j]);
  23.         return dp[i][j] = ret;
  24.     }
  25.     else
  26.         return 0;
  27. }
  28.  
  29. int main()
  30. {
  31.     fast;
  32.     int t;
  33.     cin>>t;
  34.     for( int c = 1 ; c <= t ; c++ )
  35.     {
  36.         int n;
  37.         cout<<"Case "<<c<<": ";
  38.         cin>>n;
  39.         vector < vector < int > > v;
  40.         for( int i = 0 ; i < n ; i++ )
  41.         {
  42.             vector < int > tmp;
  43.             for( int j = 0 ; j <= i ; j++ )
  44.             {
  45.                 int x;
  46.                 cin>>x;
  47.                 tmp.push_back( x );
  48.             }
  49.             v.push_back( tmp );
  50.         }
  51.         for( int i = 1 ; i <= n - 1 ; i++ )
  52.         {
  53.             vector < int > tmp;
  54.             for( int j = 1 ; j <= n - i ; j++ )
  55.             {
  56.                 int x;
  57.                 cin>>x;
  58.                 tmp.push_back( x );
  59.             }
  60.             v.push_back( tmp );
  61.         }
  62. //        for( int i = 0 ; i < v.size() ; i++ )
  63. //        {
  64. //            for( int j = 0 ; j < v[i].size() ; j++ )
  65. //                cout<<v[i][j]<<" ";
  66. //            cout<<endl;
  67. //        }
  68. //        int a[n][n];
  69.         for( int i = 0 ; i < n ; i++ )
  70.         {
  71.             for( int j = 0 ; j < n ; j++ )
  72.             {
  73.                 mat[i][j] = v[j+i][ v[j+i].size()-1 ];
  74.                 v[j+i].erase( v[j+i].begin() + v[j+i].size()-1 );
  75.             }
  76.         }
  77. //        for( int i = 0 ; i < n ; i++ )
  78. //        {
  79. //            for( int j = 0 ; j < n ; j++ )
  80. //            {
  81. //                cout<<mat[i][j]<<" ";
  82. //            }
  83. //            cout<<endl;
  84. //        }
  85.         r = n;
  86.         c = n;
  87.         memset(dp, -1 , sizeof( dp ));
  88.         cout<<call( 0 , 0 )<<"\n";
  89.     }
  90.     return 0;
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement