Advertisement
Guest User

Untitled

a guest
Dec 18th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.64 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define NN 210
  3. using namespace std;
  4. ifstream in("cladire2.in");
  5. ofstream out("cladire2.out");
  6.  
  7. struct poz
  8. {
  9.     int i , j ;
  10. };
  11.  
  12. int a[NN][NN],b[NN][NN];
  13. int sum_lin , sum_col;
  14. int n , m ;
  15. void input()
  16. {
  17.      in >> n >> m ;
  18.      for ( int i = 1; i <= n ; ++ i )
  19.          for (int j = 1 ; j <= m ; ++ j )
  20.             { in >> a[i][j];
  21.                 if ( i == 1 ) {sum_lin+=a[i][j];
  22.                                   b[i][j]=sum_lin; // pun pe prima linie
  23.                                }
  24.                        if(j == 1 ) {  sum_col += a[i][j];
  25.                                          b[i][j]= sum_col; // si pe prima coloana
  26.                          }
  27. }
  28. }
  29. vector <poz>v;
  30.  
  31. int main()
  32. {   input();
  33.      for (int i = 2 ; i <= n ; ++ i )
  34.            for( int j = 2;  j <= m ; ++j )
  35.                  b[i][j] = max (b[i-1][j],b[i][j-1]) + a[i][j];
  36.                                // construiesc matricea b dinamic
  37.      out << b[n][m] << "\n"; // afisez suma maxima
  38.     poz k ;
  39.          int i = n ;int  j = m ;
  40.  // plec din dreapta jos
  41.          for( ; ; )
  42.          {
  43.                 k.i=i,k.j=j;
  44.                 v.push_back(k);
  45.                 if(a[i-1][j]>a[i][j-1] && i>1)
  46.                 {
  47.                     --i;
  48.                 }
  49.                 // ma duc ori sus
  50.                    else --j;
  51.                    //ori stanga
  52.  
  53.                    if( i== 1 && j == 1 )break;  //cand am ajung acasa am iesit
  54.          }
  55.               out << "1 1\n"; // afiez poz initiala
  56.    for ( int g = v.size()-1 ; g>-1 ; --g)
  57.                   out << v[g].i<<" "<<v[g].j<<"\n";
  58. //si restul
  59.  
  60.     return 0;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement