Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- #define fast ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
- #define ll long long
- #define ld double
- #define llu long long unsigned
- #define inf 1 << 28
- int mat[100][100];
- int dp[100][100];
- int r = 3, c = 3;
- int call(int i, int j)
- {
- if (i >= 0 && i < r and j >= 0 and j < c)
- {
- if (dp[i][j] != -1)
- return dp[i][j];
- int ret = -inf;
- ret = max(ret, call(i , j+1) + mat[i][j]);
- ret = max(ret, call(i + 1, j) + mat[i][j]);
- ret = max(ret, call(i + 1, j + 1) + mat[i][j]);
- return dp[i][j] = ret;
- }
- else
- return 0;
- }
- int main()
- {
- fast;
- int t;
- cin>>t;
- for( int c = 1 ; c <= t ; c++ )
- {
- int n;
- cout<<"Case "<<c<<": ";
- cin>>n;
- vector < vector < int > > v;
- for( int i = 0 ; i < n ; i++ )
- {
- vector < int > tmp;
- for( int j = 0 ; j <= i ; j++ )
- {
- int x;
- cin>>x;
- tmp.push_back( x );
- }
- v.push_back( tmp );
- }
- for( int i = 1 ; i <= n - 1 ; i++ )
- {
- vector < int > tmp;
- for( int j = 1 ; j <= n - i ; j++ )
- {
- int x;
- cin>>x;
- tmp.push_back( x );
- }
- v.push_back( tmp );
- }
- // for( int i = 0 ; i < v.size() ; i++ )
- // {
- // for( int j = 0 ; j < v[i].size() ; j++ )
- // cout<<v[i][j]<<" ";
- // cout<<endl;
- // }
- // int a[n][n];
- for( int i = 0 ; i < n ; i++ )
- {
- for( int j = 0 ; j < n ; j++ )
- {
- mat[i][j] = v[j+i][ v[j+i].size()-1 ];
- v[j+i].erase( v[j+i].begin() + v[j+i].size()-1 );
- }
- }
- // for( int i = 0 ; i < n ; i++ )
- // {
- // for( int j = 0 ; j < n ; j++ )
- // {
- // cout<<mat[i][j]<<" ";
- // }
- // cout<<endl;
- // }
- r = n;
- c = n;
- memset(dp, -1 , sizeof( dp ));
- cout<<call( 0 , 0 )<<"\n";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement