josiftepe

Untitled

Nov 21st, 2020
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.32 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <map>
  4. using namespace std;
  5.  
  6. int mat[110][110];
  7. int dp[110][110];
  8.  
  9. int rec (int i, int j)
  10. {
  11.     if (i==0 and j==0)
  12.     { return mat[0][0];}
  13.      if (mat[i][j]==-1)
  14.      {
  15.          return 0;
  16.      }
  17.      if (dp[i][j]!=-1)
  18.      {
  19.          return dp[i][j];
  20.      }
  21.      int sum=1e9;
  22.      if ( j>0)
  23.      { sum=min(sum, rec(i, j-1)+ mat[i][j]);
  24.      }
  25.      if (i>0)
  26.       { sum = min(sum, rec(i-1, j) + mat[i][j]);
  27.       }
  28.       if (i>0 and j>0)
  29.       {
  30.      sum = min(sum, rec(i-1,j-1) + mat[i][j]);
  31.       }
  32.       dp[i][j]=sum;
  33.       return sum;
  34.  
  35.  
  36. }
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43. int main()
  44. {
  45.     int n;
  46.     cin>>n;
  47.  
  48.     for (int i=0;i<n+5;i++)
  49.     {
  50.         for (int j=0;j<n+5;j++)
  51.         {
  52.           dp[i][j]=-1;
  53.             mat[i][j]=-1;
  54.         }
  55.     }
  56.     for (int i=0; i<n;i++)
  57.          {
  58.              for (int j=0; j < n - i ;j++)
  59.              {
  60.                  cin>>mat[i][j];
  61.              }
  62.          }
  63.        int najmal= 1e9;
  64.        int x,y;
  65.         for (int i=0;i<n;i++)
  66.         {
  67.                  if (rec(i, n-1-i)  < najmal)
  68.           {
  69.               najmal = rec(i, n - 1 - i) ;
  70.               x=i;
  71.               y= n-1-i;
  72.           }
  73.  
  74.  
  75.         }
  76.  
  77.          cout<<rec(x,y)<<endl;
  78.          cout<<x  + 1<<" "<<y + 1<<endl;
  79.  
  80.  
  81.     return 0;
  82. }
  83.  
Advertisement
Add Comment
Please, Sign In to add comment