Advertisement
Guest User

Untitled

a guest
Mar 31st, 2020
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.38 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define faster ios_base::sync_with_stdio(0);cin.tie(0);
  4. #define sf scanf
  5. #define pf printf
  6. #define mod 100000007
  7. #define pb push_back
  8. #define Case(x,y) pf("Case %d: %lld\n",x,y);
  9. #define ll long long
  10. ll arr[10001][101],dp[10001][101];
  11. int n;
  12. ll MBP(int i,int j,int k)
  13. {
  14. if(k<(2*n-1))
  15. {
  16. if((k<n&&i>=0&&i<=k&&j>=0&&j<=k)||(k>=n&&(i>=0&&i<=k&&j>=0&&j<(2*n-1)-k)))
  17. {
  18. if (dp[i][j] != -1)
  19. return dp[i][j];
  20. ll ret = -100;
  21. ret = max(ret, MBP(i + 1, j,k+1) + arr[i][j]);
  22. if(k+1>=n&&(i>=0&&i<=k&&j>=0&&j<(2*n-1)-k))
  23. ret = max(ret, MBP(i + 1, j - 1,k+1) + arr[i][j]);
  24. else
  25. ret = max(ret, MBP(i + 1, j + 1,k+1) + arr[i][j]);
  26. return dp[i][j] = ret;
  27. }
  28. else
  29. return 0;
  30. }
  31. else
  32. return 0;
  33. }
  34. int main()
  35. {
  36. ///faster
  37. int i,coin,t,cs(1),x;
  38. sf("%d",&t);
  39. while(cs<=t)
  40. {
  41. sf("%d",&n);
  42. for(i=0; i<n; i++)
  43. {
  44. for(int j=0; j<=i; j++)
  45. cin>>arr[i][j],dp[i][j]=-1;
  46. }
  47. x=n*2-1;
  48. for(int k=1; i<x; i++,k++)
  49. {
  50. for(int j=0; j<(n-k); j++)
  51. cin>>arr[i][j],dp[i][j]=-1;
  52. }
  53. Case(cs++,MBP(0,0,0));
  54. }
  55. return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement