Thursday 27 July 2017

Lightoj 1004 - Monkey Banana Problem

http://lightoj.com/volume_showproblem.php?problem=1004

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int a[1020][1020];
  4. int b[1020][1020];
  5. void print(int n)
  6. {
  7.     for(int i  = 1; i <=n; i++){
  8.         for(int j = 1; j <=i; j++){
  9.                 cout<<b[i][j]<<" ";
  10.         }
  11.         cout<<endl;
  12.     }
  13.  
  14.     for(int i = n+1; i<=2*n-1; i++){
  15.         for(int j = 1; j <=2*n-i; j++){
  16.             cout<<b[i][j]<<" ";
  17.         }
  18.         cout<<endl;
  19.     }
  20. }
  21. int main()
  22. {
  23.     int ts;
  24.     cin>>ts;
  25.     for(int p = 1; p <= ts; p++){
  26.     memset(a,0sizeof(a));
  27.     memset(b, 0sizeof(b));
  28.     int n;
  29.     cin>>n;
  30.     for(int i  = 1; i <=n; i++){
  31.         for(int j = 1; j <=i; j++){
  32.                 int b;
  33.                 scanf("%d"&b);
  34.             a[i][j] = b;
  35.         }
  36.     }
  37.  
  38.     for(int i = n+1; i <=2*n-1; i++){
  39.         for(int j = 1; j <=2*n-i; j++){
  40.             int b;
  41.             scanf("%d"&b);
  42.             a[i][j] = b;
  43.         }
  44.     }
  45.  
  46.     b[1][1] = a[1][1];
  47.     for(int i  = 2; i <=n; i++){
  48.         for(int j = 1; j <=i; j++){
  49.             b[i][j] =a[i][j]+ max(b[i-1][j], b[i-1][j-1]);
  50.         }
  51.     }
  52.     for(int i = n+1; i <= 2*n-1; i++){
  53.         for(int j = 1; j <= 2*n-i; j++){
  54.             b[i][j] =a[i][j]+ max(b[i-1][j], b[i-1][j+1]);
  55.         }
  56.     }
  57.     int ans = b[2*n-1][1];
  58.     cout<<"Case "<<p<<": "<<ans<<endl;
  59.     }
  60.     //print(n);
  61.     return 0;
  62. }
  63.  

No comments:

Post a Comment

Most Featured Post

Lightoj 1159 - Batman

http://lightoj.com/volume_showproblem.php?problem=1159 problem analysis: First i thought of this as if s1, s2 and s3 are those three str...