Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.88 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define min(X,Y) (((X) <= (Y)) ? (X) : (Y))
  5. #define max(X,Y) (((X) >= (Y)) ? (X) : (Y))
  6.  
  7. int main()
  8. {
  9. int N;
  10. scanf("%d", &N);
  11. long a[100][100];
  12. long long dp[100][100]; //best way to [i][j]
  13. for (int i = 0; i < 100; i++) {
  14. for (int j = 0; j < 100; j++) a[i][j] = 0;
  15. }
  16. for (int i = 0; i < N; i++) {
  17. for (int j = 0; j < i + 1; j++) {
  18. scanf ("%ld", &a[i][j]);
  19. }
  20. }
  21. dp[0][0] = a[0][0];
  22. for (int i = 1; i < N; i++) {
  23. dp[i][0] = a[i][0] + dp[i-1][0];
  24. for (int j = 1; j < i; j++) {
  25. dp[i][j] = a[i][j] + max (dp[i-1][j-1], dp[i-1][j]);
  26. }
  27. dp[i][i] = a[i][i] + dp[i-1][i-1];
  28. }
  29. long M = 0;
  30. for(int j = 0; j < N; j++) {
  31. if (M < dp[N-1][j]) M = dp[N-1][j];
  32. }
  33. printf ("%ld", M);
  34. return 0;
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement