fork(1) download
  1. #include <iostream>
  2. #include<bits/stdc++.h>
  3. #define max(a,b) ((a) > (b) ? (a) : (b))
  4. using namespace std;
  5. int t,n, t1, t2;
  6. int a[102][102]= {0}; //= new int *[n];
  7. //int cache[102][102];
  8.  
  9. int solve(int i, int j)
  10. {
  11. cout<<"\n i="<<i<<"j="<<j<<"n="<<n<<"a[i][j]"<<a[i][j];
  12. //cout<<"\ncahce original at i , j"<<cache[i][j];
  13. if(i>=n)
  14. return 0;
  15.  
  16. // if(cache[i][j] > 0)
  17. // { cout<<"\n returning cache i ="<<i<<" j= "<<j<<"cache value= "<<cache[i][j];
  18. // return cache[i][j];
  19. // }
  20.  
  21. t1= solve(i+1,j);
  22. t2= solve(i+1,j+1);
  23. t= max(t1,t2)+a[i][j];
  24. cout<<"\nt1="<<t1<<"t2="<<t2<<"t="<<t;
  25. // cache[i][j]=t;
  26. // cout<<"\n putting in cache t"<<cache[i][j];
  27. return t;
  28. }
  29.  
  30. int main() {
  31. int test=0, i, j;
  32. scanf("%d", &test);
  33. while(test--)
  34. {
  35. scanf("%d", &n);
  36.  
  37. for(i=0;i<n;i++)
  38. for(j=0;j<=i;j++)
  39. scanf("%d", &a[i][j]);
  40.  
  41. printf("ans =%d\n",solve(0,0));
  42.  
  43. }
  44. return 0;
  45. }
Success #stdin #stdout 0s 3140KB
stdin
1
4 
1 
1 2 
4 1 2
2 3 1 1 
stdout
 i=0j=0n=4a[i][j]1
 i=1j=0n=4a[i][j]1
 i=2j=0n=4a[i][j]4
 i=3j=0n=4a[i][j]2
 i=4j=0n=4a[i][j]0
 i=4j=1n=4a[i][j]0
t1=0t2=0t=2
 i=3j=1n=4a[i][j]3
 i=4j=1n=4a[i][j]0
 i=4j=2n=4a[i][j]0
t1=0t2=0t=3
t1=0t2=3t=7
 i=2j=1n=4a[i][j]1
 i=3j=1n=4a[i][j]3
 i=4j=1n=4a[i][j]0
 i=4j=2n=4a[i][j]0
t1=0t2=0t=3
 i=3j=2n=4a[i][j]1
 i=4j=2n=4a[i][j]0
 i=4j=3n=4a[i][j]0
t1=0t2=0t=1
t1=0t2=1t=2
t1=0t2=2t=3
 i=1j=1n=4a[i][j]2
 i=2j=1n=4a[i][j]1
 i=3j=1n=4a[i][j]3
 i=4j=1n=4a[i][j]0
 i=4j=2n=4a[i][j]0
t1=0t2=0t=3
 i=3j=2n=4a[i][j]1
 i=4j=2n=4a[i][j]0
 i=4j=3n=4a[i][j]0
t1=0t2=0t=1
t1=0t2=1t=2
 i=2j=2n=4a[i][j]2
 i=3j=2n=4a[i][j]1
 i=4j=2n=4a[i][j]0
 i=4j=3n=4a[i][j]0
t1=0t2=0t=1
 i=3j=3n=4a[i][j]1
 i=4j=3n=4a[i][j]0
 i=4j=4n=4a[i][j]0
t1=0t2=0t=1
t1=0t2=1t=3
t1=0t2=3t=5
t1=0t2=5t=6ans =6